大家好,我想很朋友对网络通信认识只要能用就可以了,java更直接,java本身就有封装好的udp通信类和接口DatagramSocket或DatagramChannel,通信接口send,receive去发送和接收,当然这是没有错了,但很多企业都有自己的udp协议和业务协议,但这些网上是没有的,在这些把我自己在企业里的一个demo分享给大家。
tcp/ip协议这些我就不多说了,自己看书就可以了,首先说明每一个数据包(udp协议+业务协议),如http://download.csdn.net/detail/hjm132bxxwy/7994717,在这个模块中,我的udp协议 是11个字节+业务协议(用户数据),整个数据包最大值是1500字节,因为以太网中最大值是1500个字节其中20字节IP首部8字节UDP首部,所以用户数据包我规定是1024个字节。
有朋友说不会分包,组包,在上面的模块中已经包括这两个功能
在使用中注意
整个项目最好统一的udp管理,如果客户端与同一台服务器且端口一样通信,并有分包组包情况下,不统一模块管理,在并发通信时(多线程下),就会出来子数据包穿插,结果会是数据不正确,或服务端接收不到完成包,或客户端组包失败。不多说了,我写文章不什么好,看源代码吧(http://download.csdn.net/detail/hjm132bxxwy/7994717)