0

我想知道 tcp 服务器是如何工作的,因为没有多播。我对在我的游戏中使用 tcp 很感兴趣,因为它不需要像其他游戏那样发送太多数据包。尽管如此,它仍然需要一个客户端/服务器架构。

由于没有多播,是否只有一个循环可以将每个客户端的所有内容直接从服务器发送到客户端?这是我的世界所做的吗(因为我读到它使用 tcp)

据我了解,只有 1 个套接字可以绑定到一个端口。使用 udp,服务器套接字可以接受来自 IPAdress.Any 的连接,因此它可以接收来自所有客户端的信息。由于 TCP 只是连接,这将如何工作?可以在同一个套接字上建立多个 TCP 连接吗?

4

1 回答 1

1

服务器上的每个端口只能存在一个侦听连接。但是,许多客户端可以连接到那个侦听端口。引擎盖下的“连接”是 的组合ServerIP + ServerPort + ClientIP + ClientPort,客户端端口也不需要每次都相同(只有服务器端端口需要保持静态),操作系统选择一个随机的高数端口并将其提供给用于连接的客户端。这就是为什么您可以在客户端上有许多传出连接,但在服务器上只有一个侦听连接。

查看此页面以获取有关如何设置到一个端口的多个连接的示例。

于 2012-09-26T01:38:23.450 回答