如果没有多播,tcp服务器如何工作?
问题描述:
我想知道tcp服务器如何工作,因为没有多播。我有兴趣使用tcp作为我的游戏,因为它不需要像其他游戏一样发送很多数据包。它仍然需要有一个客户端/服务器体系结构。如果没有多播,tcp服务器如何工作?
由于没有多播,是否有一个循环直接从服务器发送到客户端为每个客户端?这是什么我的世界做的(因为我读它使用tcp)
这是我的理解,只有一个套接字可以绑定到一个端口。使用udp,服务器套接字可以接受来自IPAdress.Any的连接,因此它可以接收来自所有客户端的信息。由于TCP只是连接,这将如何工作?多个TCP连接可以在同一个套接字上进行吗?
答
服务器上每个端口只能存在一个监听连接。但是,许多客户端可以连接到该一个侦听端口。引擎盖下的“连接”是ServerIP + ServerPort + ClientIP + ClientPort
的组合,每次客户端端口不需要相同(只有服务器端口需要保持静态),操作系统选择一个随机的高数字端口,并将其提供给客户端进行连接。这就是为什么你可以在客户端有很多传出连接,但服务器上只有一个监听连接。
查看this page关于如何设置多个连接到一个端口的示例。