cs模式下,改小了服务端的缓冲区大小,客户端socket总是recv返回0的问题
客户端和服务端socket设置为非阻塞模式。客户端和服务端均为单线程。
客户端和服务端均在一台机器上,2个进程,只有一个客户端。客户端固定发40k大小的包,服务端收到了原包返回,其中的包序列号累加做校验。
一开始我设置服务端的接收和发送缓冲均为32k,收发均正常。后来我为了测试发送和接收返回-1的情况,将服务端的发送缓冲区和接收缓冲区改小到16k。
互发的第一包ok,而且看到分了多次发送。但是第二包客户端发送成功后就收到了recv = 0。这种情况应该是服务端断开了连接,但是我打断点close始终没有断到服务端有这样的行为。
请有经验的兄弟帮忙看看是我的程序有问题还是单纯就是缓冲区太小的问题