我想有两个使用Windows套接字通过TCP / IP进行通信的Windows应用程序。在此,我希望我的程序自动选择可用的连接建立端口。
有没有办法使用C或C ++程序找到免费的TCP端口?
准确地说,我想自动检测服务器端的空闲端口,让客户端知道相同的端口(连接到服务器)。
谢谢你的时间!
答案 0 :(得分:3)
我想自动检测服务器端的空闲端口
只需bind()
您的侦听TCP套接字到端口0.操作系统将为您选择一个可用的端口。然后,您可以使用getsockname()
来检索所选的端口。
让客户端知道相同的端口(连接到服务器)。
您必须在客户端可以在需要时查询它的位置发布所选的TCP侦听端口。
如果客户端和服务器位于同一网络子网上,一个简单的解决方案是让服务器在固定端口上打开一个单独的侦听UDP套接字,然后让客户端向该子网广播IP发送UDP广播港口。当服务器接收到广播时,它可以向客户端发送回复,指定TCP侦听端口。然后客户端可以连接到该端口上的TCP服务器。