关于网友提出的“ socket与端口port的问题?”问题疑问,本网通过在网上对“ socket与端口port的问题?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: socket与端口port的问题?
描述: 在编程中,我使用listen(Mysocket,5)监听端口,其中Mysocket的端口号定义的是5000,但我用netstat -a查看使用情况时,发现没有5000端口被使用,不知为何?
另外,使用connect和accept函数后,返回的socket中的端口号是系统自动为我们分配的吗?有没有什么规律?若我们想自己指定端口号,又没有什么好办法?
一个端口可以对应多个socket吗?这个情况什么事会发生?
解决方案1: local_sin.sin_port = htons(nListenPort)
你不会忘了转换吧
解决方案2: pehaps
Listen at 5000 Port,
but connect at another temp Port.
so at most time,the 5000 port is not in use.
解决方案3: WSAStartup的返回值不要为非0,创建socket的返回值不要为INVALID_SOCKET,选择程序处理网络时间的WSAAsyncSelect的返回值不要为SOCKET_ERROR,设置本地端口值的bind返回值不要为SOCKET_ERROR. 这些条件最好判断一下,跟踪调试一下,应该可以找到问题的原因. :)
解决方案4: NO,
客户端如果不指定端口的话,则系统自动为你分配一个临时端口,那就是
你看到的端口号。
一个socket 连接对应了四个要素:
客户端: (地址,端口)
服务器: (地址,端口)
netstat没有看到可能是因为操作系统的问题,NT下应该看得到。
解决方案5: bind 5000 to mysocket
以上介绍了“ socket与端口port的问题?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3193614.html