标签:new 主机 next dp2 客服 main equal ati etl
1)不需要利用IO流实现数据的传输
2)每个数据发送单元被统一封装成数据包的方式,发送方将数据包发送到网络中,数据包在网络中去寻找他的目的地。
3) DatagramSocket: 用于发送或接收数据包
4) DatagramPacket:数据包
示例代码:
package UDPProject;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) throws IOException {
/*
* 一次双向通信:
* 一发、一收
*/
System.out.println("----咨询者----");
//创建datagramsocket对象
Scanner input = new Scanner(System.in);
DatagramSocket ds = new DatagramSocket(8888);
//准备要发送的数据
while(true) {
String s = input.next();
byte[] buf = s.getBytes();
//创建数据包对象
//发送的数据、发送多少、发到哪台主机、主机程序使用的端口
DatagramPacket dp = new DatagramPacket(buf, buf.length,InetAddress.getByName("localhost"),9999);
//发送
ds.send(dp);
//接受
byte[] buf2 = new byte[1024];
DatagramPacket dp2 = new DatagramPacket(buf2, buf2.length);
ds.receive(dp2);
String str = new String(dp2.getData(),0,dp2.getLength());
System.out.println("客服说:"+str);
if ("bye".equals(s)) {
break;
}
}
ds.close();
}
}
package UDPProject;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) throws IOException {
/*
* 接收方:
* 一收、一发
*/
System.out.println("-----客服人员-----");
DatagramSocket ds = new DatagramSocket(9999);
//准备接收数据
Scanner input = new Scanner(System.in);
while(true) {
byte[] buf = new byte[1024];
//准备数据包接收
DatagramPacket dp = new DatagramPacket(buf, buf.length);
//接受
ds.receive(dp);
//查看接收到的数据
String str = new String(dp.getData(),0,dp.getLength());
System.out.println("客户说:"+str);
//回复数据
String s = input.next();
byte[] buf2 = s.getBytes();
DatagramPacket dp2 = new DatagramPacket(buf2, buf2.length,dp.getAddress(),dp.getPort());
ds.send(dp2);
if (s.equals("bye")) {
break;
}
}
ds.close();
}
}
标签:new 主机 next dp2 客服 main equal ati etl
原文地址:https://www.cnblogs.com/LuJunlong/p/12149146.html