//定义发送端,通过udp协议完成。
用UDP发送数据。
思路:
1,建立一个UDPsocket服务。 //DatagramSocket
2,定义要发送的数据。
3,将数据打成数据包。 //DatagramPacket
4,通过socket服务将数据包发出去。//ds.send()
5,关闭资源。 //ds.close()
//UDP接收端。
建立UDP的接收端。
思路:
1,建立udpsocket服务。需要监听一个端口,简单说,就是给接收端这个应用程序定义一个数字标识。 //DatagramSocket
2,定义数据包用于存储接收到的数据。
3,使用socket服务的接收功能,将数据都存储到数据包中。 //DatagramPacket
4,通过数据包对象的方法获取具体的数据内容。 //dp.getData() dp.getAddress()
5,关闭资源。 ds.close()
发送端代码片:
class SendDemo
{
public static void main(String[] args) throws Exception
{
//1,创建udpsocket服务。
DatagramSocket ds = new DatagramSocket();
//2,定义数据。
String str = "udp demo ,o le ";
byte[] buf = str.getBytes();
//3,将数据打成数据包.
DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.254"),10000);
//4,使用socket服务的send方法将数据发送出去。
ds.send(dp);
//5,关闭资源。
ds.close();
}
}
接收端代码片:
class ReceiveDemo
{
public static void main(String[] args) throws Exception
{
//1,创建udpsocket服务,并监听一个端口
DatagramSocket ds = new DatagramSocket(10000);
//2,建立数据包,用于存储数据。存储时需要定义个字节数组缓冲区。
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf,buf.length);
//3,使用socket服务的receive方法将接收到的数据存储到数据包中。
ds.receive(dp);
//4,通过数据包对象的方法获取具体数据内容。
//4.1获取地址。
String ip = dp.getAddress().getHostAddress();
//4.2获取端口
int port = dp.getPort();
//4.3获取数据。
String data = new String(dp.getData(),0,dp.getLength());
System.out.println(ip+"::"+data+"::"+port);
//5,关闭资源。
ds.close();
}
}