我正在使用C并编写客户端 - 服务器程序,我想获得一个未使用的端口号来运行我的服务器进程.我的服务器代码是这样的:
getaddrinfo()
socket()
bind()
listen
while(1)
accept()
Run Code Online (Sandbox Code Playgroud)
我需要为bind()调用提供未使用的端口addr.但是我不希望在启动服务器进程时通过命令行传递端口号.端口号应该通过套接字调用获得,我需要使用它来启动我的客户端进程.是否有任何套接字调用可以帮助我在C中动态获取未使用的端口?
只需将你的套接字设置sin_port绑定到sockaddr_in中的0即可.系统会自动选择未使用的端口.您可以通过调用getsockname()来检索它.
但我不知道如何将它传递给客户端,除了打印它并使用客户端程序的命令行参数.