UDP中转服务器

简介:

这个中转服务器是通过UDP协议在一个有公网独立IP的服务器上进行转发消息,从而达到一种群聊的效果,让连接上这个中转服务器的客户端之间能够互相发消息。

首先编写UDP中转服务器类,这个服务器是线程池做的多线程服务器,这个服务器能记录连接的服务器客户端IP和端口。但是由于UDPTCP不同,UDP无法建立长时间的连接,无法建立长时间的连接的话,我们怎么知道客户端是连接着还是断开的状态呢?还有如果客户端更换了IP和端口的话,如何对之前记录的IP端口信息进行删除呢?这时候就需要用到“心跳包”的方式来确认客户端的状态和信息了,心跳包就是让客户端每隔两秒发送一次客户端的信息,例如IP、端口、时间等等,如果客户端超过五秒还没有发送心跳包的话,这个客户端就会被判定为断开状态,然后这些信息还会跟随一个md5,所以我们可以使用Hashtable集合来存储这些信息,使用md5作为键值,就可以方便的通过键值取值了。

因为心跳包要接收客户端的发送的数据信息,然后这些信息中的IP信息也要转发到其他的客户端上,所以我们还需要编写一个客户端的信息封装类。

UDP中转服务器类代码示例:

1e29f937751e98ec754991d31ead948b.png

499dd65997e78e9f5ee98ae8d38ca938.png

e928da1dc1960a722bd7e8546f141ba3.png



客户端信息封装类代码示例:

ae65ed75e209c93a662d0339c2c253f5.png

01ed0d6b7720c1e83abcc1dc6e38a541.png




编写好服务器后,接下来就是编写客户端了,首先绘制一个图形界面,界面上会有两个按钮,一个按钮是用来连接服务器IP的,一个按钮是用来发送消息的。所以需要用委托事件模式,使用监听器监听这个两个按钮,当被点击的时候就执行相应的代码。

  然后还需要编写一个客户端服务类,这个类要完成向服务器发送心跳包数据还有消息数据和连接服务器的IP等业务,还有显示服务器上转发过来的消息,将消息显示到图形界面上。

图形界面代码示例:

a0e2e7e45f82e7c0618da8050f1c3fd1.png

04b722f2a526496b9c5c7455310b4ac8.png

b899bd5ea989a3df8b9e0a3851f9a410.png




客户端服务代码示例:

228465e7ccc7955e59240087d1d02831.png

9b33df89723e3ffc3f03c67f2f1c5ab4.png



运行结果:

94e6bf567d9ab97ead7e834ff1125f8d.png



本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1976693,如需转载请自行联系原作者

相关文章
|
网络协议 Java API
【JavaEE】——Udp翻译器的实现(回显服务器)
网络编程,DatagramSocket 和 DatagramPacket类,回显服务器,服务器实现,客户端实现,
|
存储 网络协议 Java
【网络】UDP回显服务器和客户端的构造,以及连接流程
【网络】UDP回显服务器和客户端的构造,以及连接流程
283 3
|
存储 网络协议 Java
【网络】UDP和TCP之间的差别和回显服务器
【网络】UDP和TCP之间的差别和回显服务器
196 1
|
网络协议 网络架构
【网络编程入门】TCP与UDP通信实战:从零构建服务器与客户端对话(附简易源码,新手友好!)
在了解他们之前我们首先要知道网络模型,它分为两种,一种是OSI,一种是TCP/IP,当然他们的模型图是不同的,如下
497 1
|
网络协议
UDP服务器的并发方案
UDP服务器的并发方案
302 0
|
4月前
|
网络协议 安全 网络安全
什么是TCP/UDP/HTTP?它们如何影响你的内网穿透体验?
数据的传输离不开各种协议,它们就像现实世界中的交通规则,规定了数据如何打包、寻址、传输和接收。对于使用内网穿透的用户来说,理解TCP、UDP和HTTP这些基础协议的特点,能帮助你更好地理解其性能表现,并选择最适合的配置方案。
|
6月前
|
网络协议 安全 网络安全
详细阐述 TCP、UDP、ICMPv4 和 ICMPv6 协议-以及防火墙端口原理优雅草卓伊凡
详细阐述 TCP、UDP、ICMPv4 和 ICMPv6 协议-以及防火墙端口原理优雅草卓伊凡
531 2
|
9月前
|
网络协议 Java 开发工具
全平台开源即时通讯IM框架MobileIMSDK:7端+TCP/UDP/WebSocket协议,鸿蒙NEXT端已发布,5.7K Stars
全平台开源即时通讯IM框架MobileIMSDK:7端+TCP/UDP/WebSocket协议,鸿蒙NEXT端已发布,5.7K Stars
559 1
|
监控 网络协议 网络性能优化
不再困惑!一文搞懂TCP与UDP的所有区别
本文介绍网络基础中TCP与UDP的区别及其应用场景。TCP是面向连接、可靠传输的协议,适用于HTTP、FTP等需要保证数据完整性的场景;UDP是无连接、不可靠但速度快的协议,适合DNS、RIP等对实时性要求高的应用。文章通过对比两者在连接方式、可靠性、速度、流量控制和数据包大小等方面的差异,帮助读者理解其各自特点与适用场景。
|
网络协议 算法 网络性能优化