谁能解释这段java socket

[复制链接]
查看11 | 回复1 | 2011-3-19 06:19:40 | 显示全部楼层 |阅读模式
import java.io.*;
import java.net.*;
public class test {
public static void main(String[] args) throws IOException{
ServerSocket server=new ServerSocket(5678);
while(true){
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();
}
}
}
回复

使用道具 举报

千问 | 2011-3-19 06:19:40 | 显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">ServerSocket server=new ServerSocket(5678); //对端口号 5678进行监听
while(true){
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();//强制刷新缓存,这样客户端马上收到服务器发出的 has receive.... 字符串
if(str.equals(\"end\"))//如果客户端发过来的一行数据是 end,就不再接收下面的数据,跳出

break;
}
client.close(); //关闭与客户端的连接
}


这段代码其实在现实的逻辑中存在一个问题,因为这段程序只能一对一的联系,就是说同一时间,只能有一个客户端与服务器端进行通讯.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行