socket服务器与客户端通信问题------服务器循环接收客户端消息

来源:3-3 编程实现基于 TCP 的 Socke t通信之客户端

哈哈小魔王

2017-07-28 08:29

服务器循环接收部分:String data=null;    while((data=bfr.readLine())!=null) {System.out.println("我是服务器,客户端说:"+data);}

和String data=bfr.readLine(); while((data!=null) 

{System.out.println("我是服务器,客户端说:"+data);}

这两种循环语句表述有什么不同呢?为什么一个只循环读取一次而另一个是无限循环??

写回答 关注

3回答

  • 夜观天象
    2018-07-13 16:50:49

    data = bfr.readLine()  在循环外只赋值一次,在循环里赋值多次

  • define_ray
    2017-09-01 10:35:41

    (1)String data=bfr.readLine(); while((data!=null)

    data在while循环之前赋值,并且while循环时没有对其修改,所以while一直循环。

    (2)while((data=bfr.readLine())!=null)

    每次while循环都对data重新赋值为bfr.readLine(),所以读到null时终止循环。

    明白了吗?望采纳。

  • qq_思密达_3
    2017-07-28 10:28:37

    第一个它是data不停改变值,即bfr.readLine()的内容,当bfr.readLine()为null时,赋值给data后,while里面判断语句变为false,就停止循环了;而第二个的bfr.readLine()不为空的值赋值给data后,在循环语句的data!=null就一直为true,所以这个循环语句是无限循环的


    慕少7573...

    你和上面的一个人的解释完全相反

    2017-09-27 14:04:58

    共 2 条回复 >

Java Socket应用---通信是这样练成的

分享的是 Java 中的网络编程,使用Socket实现网络聊天通信

125013 学习 · 590 问题

查看课程

相似问题