我正在为大学项目创建一个游戏服务器,所以我在不使用任何库/框架的情况下这样做 .
经过大量的研究,我希望客户端和服务器使用UDP协议进行大量的通信,如角色移动和定时器,因为游戏这方面的可靠性并不那么重要,丢失的数据包可以得到补偿 .
但我也想将TCP协议用于游戏的其他方面,例如操作和事件,其中信息到达客户端是至关重要的 .
我的问题是我对通常和Java中使用UDP了解不多,从我的理解来看,它与仅具有TCP的开放Socket对象完全不同 . 我认为客户端和服务器之间的初始连接将由TCP完成,然后一旦 Build 此连接,服务器是否应该将端口号发送回客户端将通过UDP与服务器通信的客户端?
这让我想到了拥有多个客户端的问题,他们都需要分配不同的端口号来通过UDP连接到服务器吗?那么服务器将为每个连接的客户端提供1个不同的端口号?
我对服务器的计划是为每个客户端连接1个发送线程和1个接收线程 - 我是否能够在每个线程中处理TCP和UDP通信,或者每个客户端需要4个线程,2个用于tcp和2用于udp?
这些只是我的第一个想法,我不太了解UDP,所以很抱歉,如果我有完全错误的结束!谢谢,如果有人可以帮助解决这些问题!