我目前正在尝试用Java实现客户端 - 服务器聊天应用程序。该项目的简介是许多客户端应该能够连接到中央服务器,每个客户端通过该服务器进行通信。它应该如下工作:
我一直在搞乱实现这个的不同方法,并且想知道TCP或UDP是否是实现客户端和服务器之间通信的更好协议。我正在考虑使用UDP多播进行服务器到客户端的通信,但这会导致用于客户端到服务器通信的UDP套接字出现问题。使用TCP与服务器通信然后UDP多播是否有意义?或者我应该废弃多播并且只是全面使用UDP数据报,服务器将收到消息的所有客户端的集合保存到模型“连接”。
答案 0 :(得分:1)
我建议你使用TCP。这很容易,你不必处理数据包顺序,丢包等,因为TCP已经为你做了。您可以查看java.nio
包,它具有一些可能派上用场的功能。
由于越来越多的用户获得更快的连接速度,并且每个包的额外几个字节最终不会做太多,因此使用TCP的开销几乎可以忽略不计。我从你的问题中理解它只会处理一组有限的客户,因此会更少注意到它。