处理客户端收不到服务器发送的消息时, 关注的客户端线程错了!
来源:7-6 NIO重写服务器-3
zwhmepsy
2019-03-17
老师在这一节里面 02:11 那里, 处理客户端收不到服务器发送的消息时, 进行客户端的调试的时候, 停在了main@1 即主线程Client 的读键盘流 那里, 其实这个地方是读取键盘输入流的, 所以阻塞是正常的.
我们的关注点应该是在Thread-1@556 那个线程, 即TCPClient 中的ReadHandler的 socketInput.readLine(). 当服务器的那端发送消息时, 消息末尾没加换行符则会被客户端的 socketInput.readLine() 函数丢弃.
写回答
1回答
-
Qiujuer
2019-03-18
嗯嗯,说的正确。
在这里调试时选择的线程不对,不过读取数据的线程倒是会持续等待换行符到达,也不会丢失数据。
如果后续添加一个换行符进去就会正常继续跑起来。此时只是持续等待结束符状态。
多谢指正哈。
022019-12-03
相似问题