background image

  Socket client=server.accept();
  BufferedReader in=

new

 BufferedReader(

new

 InputStreamReader(client.getInputStream()));

  PrintWriter out=

new

 PrintWriter(client.getOutputStream());

  

while

(true){

  String str=in.readLine();
  System.out.println(str);
  out.println("has receive....");
  out.

flush

();

  

if

(str.equals("end"))

  

break

;

  }
  client.close();
  }
  }
 
  这个程序的主要目的在于服务器不断接收客户机所写入的信息只到.客户机发
送"End"字符串就退出程序.并且服务器也会做出"Receive"为回应.告知客户机已接收到消
息.
  客户机代码:
  import java.net.*;
  import java.io.*;
  

public

 

class

 Client{

  

static

 Socket server;

  

public

 

static

 void main(String[] args)throws Exception{

  server=

new

 Socket(InetAddress.getLocalHost(),5678);

  BufferedReader in=

new

 BufferedReader(

new

 InputStreamReader(server.getInputStream()));

  PrintWriter out=

new

 PrintWriter(server.getOutputStream());

  BufferedReader wt=

new

 BufferedReader(

new

 InputStreamReader(System.in));

  

while

(true){

  String str=wt.readLine();
  out.println(str);
  out.

flush

();

  

if

(str.equals("end")){

  

break

;

  }
  System.out.println(in.readLine());
  }
  server.close();
  }
  }
 
  客户机代码则是接受客户键盘输入,并把该信息输出,然后输出"End"用来做退出标识.
  这个程序只是简单的两台计算机之间的通讯.如果是多个客户同时访问一个服务器呢?
你可以试着再运行一个客户端,结果是会抛出异常的.那么多个客户端如何实现呢?