处理客户端收不到服务器发送的消息时, 关注的客户端线程错了!

来源: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

嗯嗯,说的正确。

在这里调试时选择的线程不对,不过读取数据的线程倒是会持续等待换行符到达,也不会丢失数据。

如果后续添加一个换行符进去就会正常继续跑起来。此时只是持续等待结束符状态。

多谢指正哈。

0
2
Qiujuer
回复
none_nkn
或者可以直接去Reader中拿到换行符的字符出来更好。
2019-12-03
共2条回复

Socket网络编程进阶与实战 系统掌握Socket核心技术

理论+实践,系统且深入掌握Socket核心技术,从容应对各种Socket应用场景的不二之选

2316 学习 · 476 问题

查看课程