接收和发送数据案例
先写接收端
//UDP协议接收数据:
// A:创建接收端Socket对象
// B:创建一个数据包(接收容器)
// C:调用Socke七对象的接收方法接收数据
// D:解析数据包,并显示在控制台
// E:釋放资源
package net_study_02;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
//UDP协议接收数据:
// A:创建接收端Socket对象
// B:创建一个数据包(接收容器)
// C:调用Socke七对象的接收方法接收数据
// D:解析数据包,并显示在控制台
// E:釋放资源
public class ServeDemo {
public static void main(String[] args) throws IOException {
//创建接收端Socket对象
// DatagramSocket (int port)
DatagramSocket ds =new DatagramSocket(10086);
byte[] byts = new byte[1024];
//创腱一个数据包 (按收容器)
// DatagramPacket (byte[] buf, int length)
int lenth = byts.length;
DatagramPacket dp =new DatagramPacket(byts,lenth);
ds.receive(dp);
// 解析数据包 ,并显示在控制台
// 获取对方的ip
// public InetAddress getAddress ()
InetAddress address =InetAddress.getByName("192.168.10.103");
// public byte[] getData() :获取数据缓冲区
// public int getLength() :获取数据的实际长度
byte[] bys2=dp.getData();
int len =dp.getLength();
String str= new String(bys2,0,len);
System.out.println(str);
ds.close();
}
}
然后这里是发送端:
package net_study_02;
import java.io.IOException;
import java.net.*;
//UDP协议发送数据:
// A:创建发送端Socket对象
// B:创建数据a并把数据打包
// C:调用Socke t对象的发送方法发送数据包
// D:釋放资源
public class ClientDemo {
public static void main(String[] args) throws IOException {
//创建发送端Socke 七对象
// DatagramSocket ()
DatagramSocket ds =new DatagramSocket();
// 创建数据。并把数据打包
// DatagramPacket (byte[] buf, int length,InetAddress address, int port)
// 创建数据
byte[] byts ="终于学到网络编程了".getBytes(); //数据
int lenth =byts.length; //数据长度
InetAddress ad =InetAddress.getByName("192.168.10.103");//网络地址
int port =10086; // 端口号
DatagramPacket dp = new DatagramPacket(byts,lenth,ad,port);
//调用Socket对象的发送方法发送数据包
// public void send (DatagramPacket p)
ds.send(dp);
ds.close();
}
}