发送端
package com.zqf.Socket_.udp_;
import java.io.IOException;
import java.net.*;
public class sender {
public static void main(String[] args) throws IOException {
//1.创建一个DatagramSocket对象 准备在发送和接收数据 准备在9998接收数据 有接受的功能
//所以端口不要一样
DatagramSocket socket = new DatagramSocket(9998);
//2.将需要发送的数据封装到DatagramPackage
byte[] data = "hello 明天吃火锅".getBytes();
//封装的Datagrampackeg对象 data内容字节数组 data.length,主机(IP),端口
DatagramPacket packet =
new DatagramPacket(data, data.length, InetAddress.getByName("192.168.0.1"), 9999);
socket.send(packet);
//(1)接收信息
byte[] buf=new byte[64*1024];
packet = new DatagramPacket(buf, buf.length);
//(2)
socket.receive(packet);
//4.可以把packet进行拆包 取数据并显示
//(3)
int length = packet.getLength();//实际的接收到的数据
data = packet.getData();
String s = new String(data, 0, length);
System.out.println(s);
socket.close();
System.out.println("发送端退出");
}
}
接收端
package com.zqf.Socket_.udp_;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class receiver {
public static void main(String[] args) throws IOException {
//1.创建一个DatagramSocket对象 准备在9999接收数据
DatagramSocket Socket = new DatagramSocket(9999);
//2.构建一个DatagramSocket对象,准备接收数据
byte[] buf=new byte[64*1024];
DatagramPacket Packet = new DatagramPacket(buf, buf.length);
//3.调用接受方法 将通过网络传输DatagramPacket
//当有数据包发送到本机的9999端口 就会接收到数据
//没有数据发送的话 就等待
System.out.println("接收端等待接收数据");
Socket.receive(Packet);
//4.可以把packet进行拆包 取数据并显示
int length = Packet.getLength();//实际的接收到的数据
byte[] data = Packet.getData();
String s = new String(data, 0, length);
System.out.println(s);
//回复信息
data = "明天见".getBytes();
//封装的Datagrampackeg对象 data内容字节数组 data.length,主机(IP),端口
DatagramPacket datagramPacket =
new DatagramPacket(data, data.length, InetAddress.getByName("192.168.0.1"), 9998);
Socket.send(datagramPacket);
//关闭资源
Socket.close();
}
}
TCP网络编程
https://blog.csdn.net/zhang__1234/article/details/122886869?spm=1001.2014.3001.5501