发送方:
package com.sxt.test03;
import java.net.*;
import java.util.Scanner;
/**
* 发送方
*
* @author Administrator
*
*/
public class SentTest {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
//创建套接字
DatagramSocket ds = new DatagramSocket(12345);
while(true){
//输入发送的信息
System.out.print("我:");
String str = sc.next();
//将String 转换成 字节数组进行传送
byte[] b = new byte[10];
b = str.getBytes();
//创建传送的数据包
DatagramPacket dp = new DatagramPacket(b, b.length, InetAddress.getByName("192.168.3.70"), 9999);
//开始发送
ds.send(dp);
//判断是否可以退出循环
if("886".equals(str)){
break;
}
//接收信息
//数据接收的数组
byte[] bb = new byte[1024];
//创建接收的数据包
DatagramPacket dps = new DatagramPacket(bb, bb.length);
//开始接受
ds.receive(dps);
//将接收的信息打印在控制台
String strs = new String(dps.getData(),0,dps.getLength());
System.out.println(dps.getAddress().getHostAddress()+": "+ strs);
//判断是否可以退出循环
if("886".equals(strs)){
break;
}
}
ds.close();
}
}
接收方:
package com.sxt.test03;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
/**
* 接收方
* @author Administrator
*
*/
public class ReceiveTest {
public static void main(String[] args) throws Exception{
Scanner sc = new Scanner(System.in);
//创建套接字
DatagramSocket ds = new DatagramSocket(9999);
while(true){
//数据接收的数组
byte[] b = new byte[1024];
//创建接收的数据包
DatagramPacket dp = new DatagramPacket(b, b.length);
//开始接受
ds.receive(dp);
//将接收的信息打印在控制台
String str = new String(dp.getData(),0,dp.getLength());
System.out.println(dp.getAddress().getHostAddress()+": "+ str);
//判断是否可以退出循环
if("886".equals(str)){
break;
}
//接收方进行回复
byte[] bb = new byte[10];
System.out.print("咨询老师:");
String strr = sc.next();
bb = strr.getBytes();
DatagramPacket dpr = new DatagramPacket(bb, bb.length, InetAddress.getByName(dp.getAddress().getHostAddress()), dp.getPort());
ds.send(dpr);
//判断是否可以退出循环
if("886".equals(strr)){
break;
}
}
//关闭套接字
ds.close();
}
}
基于udp的传输通信
最新推荐文章于 2025-09-03 13:56:25 发布
本文介绍了一个简单的UDP网络通信案例,包括发送方和接收方的Java实现。通过使用DatagramSocket进行数据包的发送与接收,实现了基本的双向通信功能,并能够通过特定字符串结束会话。
1419

被折叠的 条评论
为什么被折叠?



