java tcp中客户端不能接收到服务器的信息! 20

首先说下我程序的基本实现及问题所在:两个图形界面(Server和Client,Client有两个按钮“链接”和“断开”)当Client“链接”时Server每隔五秒向Cl... 首先说下我程序的基本实现及问题所在:
两个图形界面(Server和Client,Client有两个按钮“链接”和“断开”)当Client“链接”时Server每隔五秒向Client发送系统时间信息。Client点击断开时,Client将字符“quit”传到服务器上,服务器接收到后将链接时长再发送给客户端,客户端显示出来。现在的问题是:服务器这边当客户端点击断开时接收到了“quit”,但是客户端却获取不了服务器发送的链接时长。代码如下希望那位大虾指点下:

客户端:
public void run(){ //线程正式"跑起来"
try{
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
out.write("quit"); //当点击断开触发器时,将字符"quit"发送给服务器
out.flush(); //刷新
System.out.println("断开成功!");
try{
System.out.println("这里应该有!");
if(in.ready()){
System.out.println("有没有执行获取程序!"); 这里就输出不了了,之前可以输出
String i=in.readLine();//将读取缓存的数据转化为字符串
p.setText(i); //将获得的in作为字符串打印在文本框内
System.out.println("断开显示的问题!");
}
}catch (Exception e) {
e.printStackTrace();
}
in.close(); //关闭in
out.close(); //关闭流out
s.close(); //关闭socket
}catch(Exception e){
e.printStackTrace();
}

服务器:服务器端都是可以输出的,应该没有任何问题!
while(true){
if(in.ready()){
System.out.println("接收quit的最开始!");
String strWord=in.readLine(); System.out.println("接收quit第二次!");
System.out.println(strWord);
if(strWord.equals("quit")){ /当捕获的字符串是"quit"时
long end = System.currentTimeMillis();//获取捕获"quit"数据时的时间
out.write("链接用时"+(end-start)+"毫秒"); //计算该客户链接的时间
System.out.println("链接用时"+(end-start)+"毫秒");
out.flush();
p.setText("客户端正常关闭!"); //打印客户的正常关闭
}
展开
 我来答
dachuan66
2012-03-05 · TA获得超过142个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:147万
展开全部
in.readLine(); 是要读到有换行符才结束的,在这个之前都是堵塞的
你在你发送的
out.write("quit"); ---->>out.write("quit/r");
out.write("链接用时"+(end-start)+"毫秒/r"); //计算该客户链接的时间
Storm代理
2023-06-05 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP... 点击进入详情页
本回答由Storm代理提供
匿名用户
2017-11-13
展开全部
输入流InputStream 是否有数据,这样判断
int available()Returns an estimate of the number of bytes that can be read (or
skipped over) from this input stream without blocking by the next
invocation of a method for this input stream.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
田真久
2012-03-01 · TA获得超过661个赞
知道小有建树答主
回答量:603
采纳率:100%
帮助的人:325万
展开全部
你在服务器端是先接受的吧 你应该把接受信息和发送信息放在两个不同的线程里面
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式