首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

跪求socket-accept避免堵塞方法解决方案

2011-12-29 
跪求socket-accept避免堵塞方法case ID_connect:WSADATA wsaSOCKET s,cSOCKADDR_IN server,clientint l

跪求socket-accept避免堵塞方法
case ID_connect:
  WSADATA wsa;
  SOCKET s,c;
  SOCKADDR_IN server,client;
  int len;
  WSAStartup(MAKEWORD(1,1),&wsa);
  s=socket(AF_INET,SOCK_STREAM,0);
  server.sin_family=AF_INET;
  server.sin_port=htons(1234);
  server.sin_addr.s_addr=htonl(INADDR_ANY);
  bind(s,(SOCKADDR*)&server,sizeof(server));
  listen(s,5);
  len=sizeof(SOCKADDR);
  c=accept(s,(SOCKADDR*)&client,&len); 
break;

本意是选择菜单后建立server,等待连接,可是程序到这里accept(s,(SOCKADDR*)&client,&len)整个窗口就不动了……
网上说要用线程或select解决,不太会用,有高人能给解决吗?

[解决办法]
accept有非阻塞模式 你搜搜
[解决办法]
acceptex
用accept也没关系,在线程里循环accept就行。
[解决办法]
选择非阻塞方式或开辟一个线程
[解决办法]
用线程 就可以了

热点排行