在计算机上查找可用的网络端口

Tom*_*men 2 c sockets linux

我正在尝试在linux中实现一个简单的FTP服务器(EFTP协议的一种变体).当客户端连接并发送PASV命令时,服务器应使用端口号进行响应,以便客户端可以连接到该端口以传输文件.服务器如何选择端口号?我是否需要遍历1024到65535之间的所有端口,直到找到进程可以绑定的端口为止?
我知道调用bind()和0作为端口会自动选择要绑定的端口,但是我怎么知道选择了哪个端口?

非常感谢.

nos*_*nos 7

您让系统选择一个,使用0作为端口号,并调用 getsockname()来检索其地址 - 包括端口号.