在MSDN中,有一句话,
“如果您不关心使用哪个本地端口,您可以使用0创建IPEndPoint作为端口号。在这种情况下,服务提供商将分配1024到5000之间的可用端口号”
我的困惑是: 当客户端想要连接到服务器时,
客户端是否仍需要知道服务器正在侦听哪个端口?
或者客户端只需连接到0端口。
感谢。
答案 0 :(得分:2)
客户端仍然需要知道服务器实际绑定到哪个端口,并连接到该端口。
此实例的一个示例是FTP
协议。通常,当使用活动模式时,服务器使用一个(已知)端口作为命令,并绑定一个额外的动态端口进行数据传输。当数据传输开始时,服务器通过命令通道将消息中的实际端口发送到客户端,然后客户端连接到刚刚获知的(psudo-random)数据端口。获取实际的文件数据。
答案 1 :(得分:0)
当你连接到服务器时,你必须知道ip + port决定你的应用程序链接远程服务器上的哪个进程。
socket连接就像那样
你的:IP服务器:IP < ================================================== ===========> 你的:端口服务器:端口
所以在客户端。你不关心哪个本地端口。当您连接到服务器时,服务器已知道端口。