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"用来做退出标识.
这个程序只是简单的两台计算机之间的通讯.如果是多个客户同时访问一个服务器呢?
你可以试着再运行一个客户端,结果是会抛出异常的.那么多个客户端如何实现呢?