| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1269 人关注过本帖
标题:socket编程某些服务器对某些客户端没有响应的问题!!
只看楼主 加入收藏
george_vcool
Rank: 2
等 级:新手上路
威 望:3
帖 子:453
专家分:0
注 册:2007-7-23
结帖率:100%
收藏
 问题点数:0 回复次数:5 
socket编程某些服务器对某些客户端没有响应的问题!!

我是这么用的t=serversocket(inetaddress,2);
while(true){
t=y.accept();
out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(t.getOutputStream())),true);
in=new BufferedReader(new InputStreamReader(t.getInputStream()));
System.out.println(in.readLine());
}
}catch(IOException x){x.printStackTrace();}
客户端:
try{
Socket x=new Socket(InetAddress.getLocalHost(),4113);
out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(x.getOutputStream())),true);
in=new BufferedReader(new InputStreamReader(x.getInputStream()));
}catch(IOException e){e.printStackTrace();}
System.out.println("x");
try{
out.println(System.in.read());

启动服务端之后,同时启动3个客户端,顺序为A,B,C
我在C客户端输入a,然后在B客户端输入B,然后在A客户端输入C。这下问题出来了!!服务端只输出一个99然后退出了??
想知道这是怎么回事?A,B客户端的数据怎么没有输出??请教了!!

[此贴子已经被作者于2007-9-25 14:53:38编辑过]

搜索更多相关主题的帖子: socket 服务器 客户端 new Socket 
2007-09-25 14:46
huwangvs
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:764
专家分:0
注 册:2007-2-4
收藏
得分:0 
System.in.read()应该是这个问题。。。
它只读一个字符的。。
当没有字符时它一直阻塞,一旦读了一个字符程序就往下运行了。。
2007-09-25 15:46
george_vcool
Rank: 2
等 级:新手上路
威 望:3
帖 子:453
专家分:0
注 册:2007-7-23
收藏
得分:0 

这个我知道,但是明明已经有两个客户端输入了数据,哪数据哪去了??想知道数据的去向,请教了??

2007-09-25 16:29
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
你的数据被遗弃在缓存中了,因为

t=y.accept();
out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(t.getOutputStream())),true);
in=new BufferedReader(new InputStreamReader(t.getInputStream()));
System.out.println(in.readLine());

这一段导致了Server在处理第一个数据的时候(准确来说应该是第一个到达的数据)产生阻塞。
而这个Server又极端无聊,处理完第一个Client就退出了...所以后面两个数据全部被阻塞在缓存中,随着程序的关闭而被操作系统遗弃

淘宝杜琨
2007-09-25 17:07
george_vcool
Rank: 2
等 级:新手上路
威 望:3
帖 子:453
专家分:0
注 册:2007-7-23
收藏
得分:0 
阻塞在哪个端的缓存中??
是客户端还是服务端!!!
2007-09-25 18:42
huwangvs
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:764
专家分:0
注 册:2007-2-4
收藏
得分:0 

我用BufferedReader和PrintWrite也老是出这种情况。。。
比较郁闷就改用DataInputStream和DataOutputStream的writeUTF,readUTF。。
没什么问题。

2007-09-26 09:06
快速回复:socket编程某些服务器对某些客户端没有响应的问题!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.055812 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved