程序是控制台模式的,一个服务器端,然后允许多个客户端连接上来,客户端连接后就会不断的发一个字串给服务器,服务器收到后就在控制台上把这个字串显示出来通讯格式为: 头4个字节为后续数据的长度,服务器端收到后,会根据此长度去接收 剩余部分的数据,也就是客户端发过来的字串但是,如果我选定服务器的控制台界面,稍微选定几秒而已,再恢复,程序就会断言错误。 如果不选定界面,就让程序这么跑着,那很久都不会有问题。 断言是我自己设定的,由于字串是固定的,所以长度也肯定固定,因此我在服务器端 接收字串长度的地方加了断言,确保 接收的长度一定是我预期的,而现在却接收错了。客户端发送的速度不快,1秒发一条信息,但是有多个客户端同时连上服务器服务器端使用的是基于Event的重叠IO,采用TCP协议。客户端就是普通的阻塞式套接字服务器端数据的接收和显示都是开了专门的一个线程来执行的
请问,我的程序问题可能出在哪里? 有没有可能是丢包造成的?还是说 我的重叠IO处理哪里可能会处理的不好而造成了丢包?恳请诸位赐教,这问题困扰我2天了