C++ Socket 多线程连接问题
C++写了一个服务端,IOCP,多线程处理接收,我想问问,来自不同的客户端,同时接入(Accept)的SOCKET会重复吗?或者说A客户端的Socket为220,A的So...
C++写了一个服务端,IOCP ,多线程处理接收,我想问问,来自不同的客户端,同时接入(Accept)的SOCKET 会重复吗?或者说A客户端的Socket为220,A的Socket还没有关闭的情况下,B客户端再接入,B的这个连接Socket会不会也是220。
展开
展开全部
没听懂你的意思,在系统里,网络资源在被一个进程拥有时,这个进程里的多个线程当然可以用了,Accept是在服务器端使用的API,不是在客户端,一个线程用就行了,然后接受一个连接就开一个线程就可以了。在一个机器里不同连接的socket标识不会一样啊,但是在不同机器里,一样不一样没什么关系吧。
追问
我是说的一台机器上的一个服务端程序,接受不同客户端的socket会不会相同:WSAAccept(sockListen,NULL,NULL,NULL,0);,假如第一次Accept,sockListen为220,第二次来自不同的客户端,前一次的sockListen还没有被关闭,第二次的sockListen会不会是220
追答
肯定不相同呀,首先一个socket标识符绑定一个端口接收连接,假设这个是220,WSAAccept函数如果接受了一个连接,那么会返回新的socket标识符如221(肯定不是220),就不是监听那个socket标识了。以后如果再接受连接可能就是222(也肯定不是220)或非220的其它标识符。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询