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就行。
------解决方案--------------------------------------------------------
选择非阻塞方式或开辟一个线程
------解决方案--------------------------------------------------------
用线程 就可以了