我用socket写了一个服务端的程序 测试的时候出现了这样的问题
服务端采用消息通知的方式来接收客户端的信息的 WSAAsyncSelect(sAccept,m_hWnd,WM_MYWINSOCK,FD_READ|FD_CLOSE);
我同时开了四个客户端 每个客户端每隔1s钟都会向客户端发送讯息
一开始我的服务端软件能正确接收到各个客户端的消息 但是一段时间过后,其中的某些客户端的消息就接收不到了 设断点也接收不到FD_READ消息了 但我用wireshark还能接收到所有客户端发送过来的消息 并且服务端还能向这个客户端发送消息 我初步判断应该是接收缓冲区溢出 导致socket不触发FD_READ消息各位大侠 有没有好一点的建议来解决这个问题呢
服务端采用消息通知的方式来接收客户端的信息的 WSAAsyncSelect(sAccept,m_hWnd,WM_MYWINSOCK,FD_READ|FD_CLOSE);
我同时开了四个客户端 每个客户端每隔1s钟都会向客户端发送讯息
一开始我的服务端软件能正确接收到各个客户端的消息 但是一段时间过后,其中的某些客户端的消息就接收不到了 设断点也接收不到FD_READ消息了 但我用wireshark还能接收到所有客户端发送过来的消息 并且服务端还能向这个客户端发送消息 我初步判断应该是接收缓冲区溢出 导致socket不触发FD_READ消息各位大侠 有没有好一点的建议来解决这个问题呢
1. TCP/IP协议栈已经接收到客户端的数据。
2. 应用层可能在某些地方阻塞了,你的服务器的是多线程的么?
3. select时是不同的socket么?