紧急求救,使用winsock的thread问题

kaku_you kaku_you 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我的程序要通过telnet连接31台使用telnet server的服务器,我使用如下方法进行处理

1.继承CWinThread在里面添加SOCKET类型的成员net

2.发送函数使用
fd_set writefds;
FD_ZERO(&writefds);
FD_SET(netsock,&writefds);
int sv = ::select(FD_SETSIZE, NULL, &writefds, NULL, &timeout);
if( sv<=0 )return;
::send(netsock,(LPCSTR)cmd,cmd.GetLength(), 0);
的程序来发送

3.接收函数使用
fd_set readfds;
FD_ZERO( &readfds );
FD_SET ( netsock,&readfds );
int sv=::select(FD_SETSIZE, &readfds, NULL, NULL, &timeout);
if( sv <= 0 )return;
int recv_size = ::recv(netsock,buf,buf_len, 0);
的程序来接收

连接4,5台服务器没有任何问题,一连接31台的服务器就会经常发生某几个recv函数返回-1,我用WSAGetLastError函数取得的err id号是183,我想问大家,我的winsocket方法是不是不对,在多线程下是不是有正确的使法?
...全文

相关推荐

评论 18
收藏 已收藏
分享
返回顶部
kaku_you
网络编程 18,356 成员 64,161 内容