UDP案例
发送固定内容
发送端
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class SendDemo1 {
public static void main(String[] args) throws Exception{
DatagramSocket socket = new DatagramSocket();
byte[] bytes = "李刚来了...".getBytes();
int length = bytes.length;
InetAddress address = InetAddress.getByName("192.168.22.15");
DatagramPacket packet = new DatagramPacket(bytes, length, address, 10086);
socket.send(packet);
socket.close();
}
}
接收端
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class ReceiveDemo1 {
public static void main(String[] args) throws Exception{
DatagramSocket socket = new DatagramSocket(10086);
byte[] bytes = new byte[1024];
DatagramPacket packet = new DatagramPacket(bytes, bytes.length);
socket.receive(packet);
byte[] data = packet.getData();
int length = packet.getLength();
String info = new String(data, 0, length);
System.out.println("发送段发来一条消息:"+info);
socket.close();
}
}
发生输入内容
发送端
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
public class SendDemo1 {
public static void main(String[] args) throws Exception{
DatagramSocket socket = new DatagramSocket();
Scanner sc = new Scanner(System.in);
while (true){
System.out.print("请输入要发送的内容:");
String info = sc.nextLine();
byte[] bytes = info.getBytes();
int length = bytes.length;
InetAddress address = InetAddress.getByName("192.168.22.15");
DatagramPacket packet = new DatagramPacket(bytes, length, address, 10086);
socket.send(packet);
if("886".equals(info)){
break;
}
}
socket.close();
}
}
接收端
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ReceiveDemo1 {
public static void main(String[] args) throws Exception{
DatagramSocket socket = new DatagramSocket(10086);
System.out.println("=================== 欢迎来到32期大群聊 =======================");
while (true){
byte[] bytes = new byte[1024];
DatagramPacket packet = new DatagramPacket(bytes, bytes.length);
socket.receive(packet);
byte[] data = packet.getData();
int length = packet.getLength();
String info = new String(data, 0, length);
InetAddress address = packet.getAddress();
String hostName = address.getHostName();
BufferedWriter bw = new BufferedWriter(new FileWriter("java/src/com/shujia/day19/recode/" + hostName + ".txt",true));
if("886".equals(info)){
System.out.println("----------- 提示线 -------------");
System.out.println(hostName+" 用户已离开群聊.....");
System.out.println("----------- 提示线 -------------");
}else {
String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
System.out.println(time);
System.out.println(hostName+ ":"+info);
bw.write(time);
bw.newLine();
bw.write(info);
bw.newLine();
bw.flush();
System.out.println();
}
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具