黑马程序员技术交流社区

标题: 流与网络和线程的结合 [打印本页]

作者: 周飞飞    时间: 2015-5-8 11:21
标题: 流与网络和线程的结合
package net;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

/**
*
* 服务端  1, 创建
*
*/
public class SeverSocketDemo {
public static void main(String args[]) throws IOException{
  //创建服务端
  ServerSocket ss = new ServerSocket(12345);
  
  //等待客户端链接
  Socket s = ss.accept();
  //创建输出流,写到某个文件
  PrintWriter pw= new PrintWriter( new FileWriter("c:/"+s.getInetAddress()+".txt"));
  //创建输入流 并获取客户端输入流
  BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
  String line ;
  while((line=br.readLine())!=null){
   System.out.println(line);
   pw.println(line);
   pw.flush();
  }
  br.close();
  pw.close();
  
}
}


************************************************************************************************************************
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

/**
* 客户端
*
*/
public class UrseTest {
public static void main(String args[]) throws UnknownHostException, IOException{
  //创建字符输入流 并从键盘输入
  BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
  //创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
  Socket s =new Socket("127.0.0.1",123456);
  //创建一个打印流并获取 此套接字的输出流。
  PrintWriter pw= new PrintWriter( new OutputStreamWriter(s.getOutputStream()));
  String line ;
  while((line=bf.readLine())!=null){
   //写出
   pw.println(line);
   pw.flush();
  }
  bf.close();
  pw.close();
  
}
}
添加一个线程可以让多个用户同时访问

作者: 396460221    时间: 2015-5-8 16:09
将服务端的代码封装到多线程中,并且在服务端要调用shutdownOutput()方法,告诉服务端客户端数据写完的标记,否则服务端不会停。毕老师多线程的视频里有讲的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2