이 기사에서는 udp를 사용하여 Java에서 간단한 보내기 및 받기를 수행하는 방법에 대해 설명합니다.
Code 1: Sender-demo2Sender.java
package udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException;
자바 네트워크 통신 업계에서는 소켓(socket) 통신이라고 하며, 통신에 필요한 두 장치 모두 소켓이 설치되어 있어야 합니다.
프로토콜마다 소켓이 다릅니다(Socket)
UDP 통신 프로토콜의 특징:
1. 데이터를 데이터 패킷으로 캡슐화하고, 비연결형을 지향합니다. ... 단말기의 경우 송신측과 수신측만 구분됩니다.
예: 자산 관리 무전기, FeiQ 채팅, 게임...
udp 프로토콜 하의 소켓:DatagramSocket(udp 소켓 서비스)
DatagramPacket(데이터 패킷 클래스)
DatagramPacket(buf, 길이 , 주소, 포트) .
주소: 전송된 대상 IP 주소 개체
포트: 포트 번호.
발신자 사용 단계:1. UDP 서비스를 설정합니다.
2. 데이터를 준비하고 데이터 패킷에 데이터를 캡슐화하여 보냅니다. 송신측의 데이터 패킷에는 IP 주소와 포트 번호가 있어야 합니다.
3. udp 서비스를 호출하고 데이터를 보냅니다.
4. 리소스를 닫습니다. /发送端
@SuppressWarnings("unused")
public class demo1Sender {
public static void main(String[] args) throws IOException {
//建立udp的服务
DatagramSocket datagramSocket = new DatagramSocket();
//准备数据,把数据封装到数据包中。
String data = "这个是我第一个udp的例子..";
//创建了一个数据包
DatagramPacket packet = new DatagramPacket(data.getBytes(), data.getBytes().length,InetAddress.getLocalHost() , 9090);
//调用udp的服务发送数据包
datagramSocket.send(packet);
//关闭资源 ---实际上就是释放占用的端口号
datagramSocket.close();
}
}
package udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket;
수신기 사용 단계
1. UDP 서비스 설정 2. 데이터를 수신할 빈 데이터 패킷을 준비합니다.
3. 데이터를 수신하려면 udp 서비스를 호출하세요.
4. 리소스 닫기 ]
위 내용은 java-udp를 사용하여 간단한 전송 및 수신 수행의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!public class demo1Receive {
public static void main(String[] args) throws IOException {
//建立udp的服务 ,并且要监听一个端口。
DatagramSocket socket = new DatagramSocket(9090);
//准备空的数据包用于存放数据。
byte[] buf = new byte[1024];
DatagramPacket datagramPacket = new DatagramPacket(buf, buf.length); // 1024
//调用udp的服务接收数据
socket.receive(datagramPacket); //receive是一个阻塞型的方法,没有接收到数据包之前会一直等待。 数据实际上就是存储到了byte的自己数组中了。
System.out.println("接收端接收到的数据:"+ new String(buf,0,datagramPacket.getLength())); // getLength() 获取数据包存储了几个字节。
System.out.println("receive阻塞了我,哈哈");
//关闭资源
socket.close();
}
}