(一)服务器端:
步骤如下:
1、创建接收端Socket对象
2、创建一个接收数据包
3、调用socket对象的接收数据方法
4、解析数据包,并将其输出在控制台
5、释放资源
代码实现如下:
public class ReceiveDemo {
public static void main(String[] args) throws IOException {
//创建接收端socket对象
DatagramSocket ds = new DatagramSocket(12345);
//创建接收数据包
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf, buf.length);
//接收数据
ds.receive(dp);
//解析数据包
String ip = dp.getAddress().getHostName();
String datas = new String(dp.getData(), 0, dp.getLength());
System.out.println("接收到来自 "+ip+" 的数据:"+datas);
//释放资源
ds.close();
}
}
(二)客户端:
步骤如下:
1、创建发送端Socket对象
2、创建数据,并把数据打包
3、调用socket对象的发送方法来发送数据包
4、释放资源
代码实现如下:
public class SendDemo {
public static void main(String[] args) throws IOException {
//创建发送端socket对象
DatagramSocket ds = new DatagramSocket();
//创建需要发送的数据,并封装成数据包
byte[] datas = "Hello UDP".getBytes();
DatagramPacket dp = new DatagramPacket(datas, datas.length, netAddress.getByName("127.0.0.1"), 12345);
//发送
ds.send(dp);
//释放资源
ds.close();
}
}
服务器端收到数据如下:
(一)服务器端:
步骤如下:
1、创建服务器端socket对象(ServerSocket类)
2、监听客户端连接。并且针对每一个客户端都返回一个socket对象(Socket类的实例)
3、获取输入流,读取数据
4、释放资源
代码实现如下:
public class ServerDemo {
public static void main(String[] args) throws IOException{
//创建ServerSocket对象
ServerSocket ss = new ServerSocket(12345);
//监听客户端连接。返回客户端socket对象
Socket s = ss.accept();
//获取输入流,读取数据
InputStream is = s.getInputStream();
byte[] datas = new byte[1024];
int len = is.read(datas);
System.out.println("Server:"+new String(datas, 0, len));
//获取输出流,写出反馈
OutputStream os = s.getOutputStream();
os.write("数据已收到".getBytes());
//释放资源
s.close();
}
}
(二)客户端:
步骤如下:
public class ClientDemo {
public static void main(String[] args) throws IOException {
//创建socket对象
Socket s = new Socket("127.0.0.1", 12345);
//获取输出流
OutputStream os = s.getOutputStream();
os.write("Hello TCP".getBytes());
//获取输入流
InputStream is = s.getInputStream();
byte[] datas = new byte[1024];
int len = is.read(datas);
System.out.println("Client:"+new String(datas, 0, len));
//释放资源
s.close();
}
}
运行结果如下:
服务器端收到消息:
客户端收到反馈:
Java网络编程--UDP、TCP协议实现简单接收和发送数据
原文:https://www.cnblogs.com/Java-biao/p/12589106.html