Wiz*_*zit 6 java sockets messenger
我需要在Java语言中使用纯套接字实现客户端/服务器即时消息.
服务器应该服务大量的客户端,我需要决定我应该使用哪些套接字 - TCP或UDP.
谢谢,科斯塔.
TCP
原因:
TCP:"绝对保证传输的数据保持不变,并按照发送的顺序到达."
UDP:"无法保证发送的消息或数据包完全可以达到."
欲了解更多信息,请访问:http://www.diffen.com/difference/TCP_vs_UDP
你想要你的聊天消息可能会丢失吗?
编辑:我错过了关于"大型聊天程序"的部分.我认为由于聊天程序的性质,它需要是一个TCP服务器,我无法想象用户通过UDP协议发送的实际文本内容.
TCP服务器的最大限制是65536个连接.如果您确实需要超过该数字,则可以创建一个调度程序服务器,该服务器将根据当前服务器负载将传入连接发送到相应的服务器.
您可以同时使用。使用TCP交换实际消息(因此,不会丢失任何数据并流传输大消息(例如,包含jpeg等)。仅使用UDP将短的“ connectNow”消息发送到已排队消息的客户端。可能具有类似状态(NotLoggedIn,TCPconnected,TCPdisconnected,LoggedOut)的各种超时,以控制状态转换以及正常的消息交换事件。UDP“ connectNow”消息将指示“ TCPdisconnected”中的客户端进行连接,因此移至“ TCPconnected”,它们将停留在那里,交换消息,直到某个不活动计时器指示客户端暂时断开连接,这当然是不可靠的,因此您可能希望重复“ connectNow” 每X秒发送一次消息N次,直到客户端连接为止。无论如何,客户端应每隔X分钟尝试一次轮询,以防万一...
| 归档时间: |
|
| 查看次数: |
9048 次 |
| 最近记录: |