Java中的客户端 - 服务器聊天应用程序

时间:2011-11-02 22:02:55

标签: java tcp udp client-server

我目前正在尝试用Java实现客户端 - 服务器聊天应用程序。该项目的简介是许多客户端应该能够连接到中央服务器,每个客户端通过该服务器进行通信。它应该如下工作:

  • 服务器已启动
  • 许多客户端已启动并“连接”到服务器
  • 客户端A向服务器发送消息,服务器将消息中继到客户端B,C等。
  • 服务器已停止,所有连接均已关闭
  • 我一直在搞乱实现这个的不同方法,并且想知道TCP或UDP是否是实现客户端和服务器之间通信的更好协议。我正在考虑使用UDP多播进行服务器到客户端的通信,但这会导致用于客户端到服务器通信的UDP套接字出现问题。使用TCP与服务器通信然后UDP多播是否有意义?或者我应该废弃多播并且只是全面使用UDP数据报,服务器将收到消息的所有客户端的集合保存到模型“连接”。

    1 个答案:

    答案 0 :(得分:1)

    我建议你使用TCP。这很容易,你不必处理数据包顺序,丢包等,因为TCP已经为你做了。您可以查看java.nio包,它具有一些可能派上用场的功能。

    由于越来越多的用户获得更快的连接速度,并且每个包的额外几个字节最终不会做太多,因此使用TCP的开销几乎可以忽略不计。我从你的问题中理解它只会处理一组有限的客户,因此会更少注意到它。