发送方:
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();
}
}
转载请注明原文地址: https://ju.6miu.com/read-673419.html