VC++服务器如何获取每上来一个客户端

来源:百度知道 编辑:UC知道 时间:2024/09/20 22:49:54
我在服务端的线程里用了个死循环接受连接近来的客户端,
用IF判断只要有客户端连接上就创建一个新的SOCKET
然后加进容器
不清楚只要有客户端连接近来死循环才会往下走,如果没有客户端连接近来它就停住
我并没有设置让它停住。
我试着把它放在循环外面,好象也行不通,只要运行整个界面就卡住了。
我想它就算没有客户端连接近来我的循环一样再接收数据。

accept为阻塞函数,主线程被挂起了.
可以用socket提供的异步方法,也可以用多线程.

while (1)
{
ClientSocket = accept(ListenSocket, (LPSOCKADDR)&ClientAddr, &addr_size);
if (ClientSocket == INVALID_SOCKET)
{
continue;
}
AccpetHost(ClientSocket, ClientAddr);//自定义函数
}

使用多线程。一个监听线程,一个界面的,同时还要有处理线程,处理监听线程得到的连接