2、UDP通信
UDP通信,接收方
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class UdpClient2 {
public static void main(String[] args) throws IOException {
//1、建立socket,无参构造器
DatagramSocket socket=new DatagramSocket(9090);
//创建byte数组,接收数据包
byte[] buffer = new byte[1024];
//指定数据包
DatagramPacket packet = new DatagramPacket(buffer,0,buffer.length);
//调用receive方法,接收数据
socket.receive(packet);
System.out.println(packet.getAddress().getHostName());
//输出接收的数据
System.out.println(new String(packet.getData(),0,packet.getLength()));
socket.close();
}
}
UDP通信,发送方
getBytes() 方法有两种形式:
getBytes(String charsetName): 使用指定的字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
getBytes(): 使用平台的默认字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UdpClient1 {
public static void main(String[] args) throws IOException {
//1、建立UDP_socket,无参构造器
DatagramSocket socket=new DatagramSocket();
//2、建String数据包
String msg="你好";
//3、发送给谁,在给定主机名的情况下获取主机的IP地址
//InetAddress localhost=InetAddress.getByName("127.0.0.1");
InetAddress localhost=InetAddress.getByName("localhost");
//System.out.println(localhost); localhost/127.0.0.1
int port=9090;
//建立数据包,指定数据,起始位置,长度,地址,端口
DatagramPacket packet = new DatagramPacket(msg.getBytes(),0,msg.getBytes().length,localhost,port);
//4、发送包
socket.send(packet);
//关闭socket
socket.close();
}
}
浙公网安备 33010602011771号