UDP通信程序练习
package NetworkProgramming.UDP.Test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
* FileName: SendDemo
* Author: lps
* Date: 2022/4/1 15:42
* Sign:刘品水 Q:1944900433
*/
public class SendDemo {
public static void main(String[] args) throws IOException {
DatagramSocket ds = new DatagramSocket();
InetAddress address = InetAddress.getByName("192.168.10.102");
//DatagramPacket(byte[] buf, int length, InetAddress address, int port)
//指定主机上的指定端口发送数据包的长度 length数据报包结构。
//Scanner sc = new Scanner(System.in);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line;
while ((line = br.readLine()) != null) {
if ("886".equals(line)) {
break;
}
byte[] bys = line.getBytes();
DatagramPacket dp = new DatagramPacket(bys, bys.length, address, 1944);
//SocketException
ds.send(dp);
}
ds.close();
// byte[] bys = input.getBytes(StandardCharsets.UTF_8);
// if ( input == String.valueOf(886)) {
// System.exit(0);
// } else {
// DatagramPacket dp = new DatagramPacket(bys, bys.length, address, 1944);
//
// ds.send(dp);
//
// }
}
}
package NetworkProgramming.UDP.Test;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
/**
* FileName: ReceiveDemo
* Author: lps
* Date: 2022/4/1 15:42
* Sign:刘品水 Q:1944900433
*/
public class ReceiveDemo {
public static void main(String[] args) throws IOException {
DatagramSocket ds = new DatagramSocket(1944);
//DatagramSocket(int port)
//构建一个数据报套接字绑定到本地主机的指定端口。
while (true){
//DatagramPacket(byte[] buf, int length)
//接收数据包长度 length DatagramPacket构建。
byte[] bys = new byte[1024];
DatagramPacket dp = new DatagramPacket(bys, bys.length);
//void receive(DatagramPacket p)
//接收数据报包从这个插座。
ds.receive(dp);
//System.out.println(dp.toString());
//解析数据包
//byte[] getData()
//返回数据缓冲区。
byte[] data = dp.getData();
//int getLength()
//返回要发送的数据的长度或收到的数据的长度。
int len = dp.getLength();
// String dataString = new String(data,0,len);
// System.out.print("数据是:"+dataString);
System.out.println("接收到的数据是:" + new String(data, 0, len));
}
//ds.close();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix