当前位置: 代码迷 >> VC >> 跪求socket-accept避免堵塞方法解决方案
  详细解决方案

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

热度:4747   发布时间:2013-02-25 00:00:00.0
跪求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就行。
------解决方案--------------------------------------------------------
选择非阻塞方式或开辟一个线程
------解决方案--------------------------------------------------------
用线程 就可以了
  相关解决方案