0

我搜索了互联网但没有得到答案可以解释一下它们之间的区别

4

2 回答 2

0

服务器侦听本地端口,而客户端从本地端口发送数据。客户端远程端口应该与服务器本地端口相同。即:服务器侦听端口 n(相对于服务器的本地端口)客户端连接到端口 n 上的服务器(相对于客户端的远程端口)

要回答您的问题,区别在于名称,基于视角。

这似乎是开始 VB6 套接字通信的好地方

于 2013-01-17T22:41:39.080 回答
0

TCP“连接”是一个 4 元组。本地 IP、本地端口、远程 IP 和远程端口。每一端都在其 TCP 堆栈中维护此标识,但意义相反(本地与远程)。

这 4 个值的组合必须是唯一的。这解释了人们在编写一个重用套接字重新连接到同一服务器的 TCP 客户端时经常遇到的问题。

“关闭”连接会将此 ID 在每一端的表中保留一段时间,处于 TIME_WAIT 状态。这是 TCP 机制的产物,即使物理层连接中断,也可以保持连接完整性,防止挂起的数据包被第二个连接接收等。TIME_WAIT 可以持续长达 4 分钟。

除非客户端将其套接字的 LocalPort 重置为 0(这是对自动临时端口分配的请求),否则如果在 TIME_WAIT 到期之前尝试重新连接,它可能会失败。由于新创建的套接字为 0,因此程序员在调用 Connect 之前经常会忽略此要求。

LocalPort 不仅仅是监听套接字的问题。

于 2013-01-18T03:15:33.853 回答