C++ Socket 多线程连接问题

C++写了一个服务端,IOCP,多线程处理接收,我想问问,来自不同的客户端,同时接入(Accept)的SOCKET会重复吗?或者说A客户端的Socket为220,A的So... C++写了一个服务端,IOCP ,多线程处理接收,我想问问,来自不同的客户端,同时接入(Accept)的SOCKET 会重复吗?或者说A客户端的Socket为220,A的Socket还没有关闭的情况下,B客户端再接入,B的这个连接Socket会不会也是220。 展开
 我来答
百度网友28e9be2
2014-04-01 · TA获得超过609个赞
知道小有建树答主
回答量:499
采纳率:100%
帮助的人:601万
展开全部
没听懂你的意思,在系统里,网络资源在被一个进程拥有时,这个进程里的多个线程当然可以用了,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的其它标识符。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式