声明:本教程不收取任何费用,欢迎转载,尊重作者劳动成果,不得用于商业用途,侵权必究!!!
文章目录
一、基于UDP的socket编程
对于基于UDP通信来说,通信双方不需要建立连接,也就不需要有一方去等待连接。所以说它们对于服务器和客户端的这种概念不是很明显。
对于基于UDP通信的双方,有一方是需要先启动的,如果有一方在发送数据的时候,接收方没有启动,那么数据就会存在没有接受者而丢失,我们可以把接收者作为服务器,发送者作为客户端。
那么和基于TCP的通信比较的话,我们会发现作为服务器的一方,总是先启动的一方,在java中编写基于UDP通信的程序是非常简单的。
我们首先创建数据报套接字DatagramSocket,基于UDP的套接字我们可以称为数据报套接字,当你构造数据报套接字之后,我们可以利用DatagramSocket类中的这两个方法:一个是receive方法去接收一个数据包,一个是send方法去发送一个数据包。
具体如下图:
二、基本步骤
接收端程序的基本步骤:
①调用DatagramSocket(int port)创建一个数据报套接字,并绑定到指定端口上;②调用DatagramPacket(byte[]buf,int length),建立一个字节数组以接收UDP包。③调用DatagramSocket类的receive(),接收UDP包。④最后关闭数据报套接字。
发送端程序的基本步骤:
①调用DatagramSocket()创建一个数据报套接字;②调用DatagramPacket(byte[]buf,int offset,int length,InetAddress address,int port),建立要发送的UDP包。③调用DatagramSocket类的send(),发送UDP包。④最后关闭数据报套接字。
三、系列文章(java网络编程)
java网络编程:1、计算机网络?网络通信的组成?什么是ip、协议、端口号?
java网络编程:2、IP地址、协议、网络状况、网络异质性问题的解决
java网络编程:6、TCP/IP模型、TCP/IP模型与OSI参考模型的对应关系
java网络编程:8、基于TCP的socket编程(一)简单的socket通信_一个客户端
java网络编程:9、基于TCP的socket编程(二)服务器端循环监听接收多个客户端_多线程服务器程序
java网络编程:10、基于TCP的socket编程(三)缓冲流、flush方法、关闭流
java网络编程:11、基于UDP的socket编程(一)理论、基本步骤