이 글에서는 주로 Java에서 시뮬레이션된 UDP 전송의 송신자와 수신자의 자세한 예에 대한 관련 정보를 소개합니다. 필요한 친구는
Java에서 시뮬레이션된 UDP 전송의 송신자와 수신자를 참조할 수 있습니다. 수신단 인스턴스 상세 설명
1. UDP 전송 송신단 생성
1. UDP 소켓 서비스를 구축합니다. >
2. 전송할 데이터를 데이터 패킷으로 캡슐화합니다.
3. UDP 소켓 서비스를 통해 데이터 패킷을 보냅니다.
4. 소켓 서비스.
import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class UDPSend { public static void main(String[] args) throws IOException { System.out.println("发送端启动......"); // 1、创建UDP的Socket,使用DatagramSocket对象 DatagramSocket ds = new DatagramSocket(); // 2、将要发送的数据封装到数据包中 String str = "UDP传输演示:I'm coming!"; byte[] buf = str.getBytes(); //使用DatagramPacket将数据封装到该对象的包中 DatagramPacket dp = new DatagramPacket(buf, buf.length, InetAddress.getByName("192.168.191.1"), 10000); // 3、通过UDP的Socket服务将数据包发送出去,使用send方法 ds.send(dp); // 4、关闭Socket服务 ds.close(); } }
1. UDP 소켓 서비스를 설정해야 합니다.
2. 데이터 패킷 개체 방식을 사용하여 수신된 데이터를 저장하고 데이터를 쉽게 분석할 수 있는 데이터 패킷을 만듭니다.
3. 소켓 서비스 데이터를 수신하여 데이터 패킷에 저장합니다.
4. 데이터 패킷 방식을 통해 데이터를 구문 분석합니다.
5.
처음 두 부분에서는 한 번에 하나의 메시지만 보내거나 받을 수 있습니다. , 그런 다음 서비스를 종료하세요! 따라서 여러 메시지를 보내려면 송신 측에서 보낸 내용을 지속적으로 수정해야 하고 서버를 다시 시작해야 하는데 이는 상당히 번거로운 작업입니다. 위의 단점을 극복하기 위해 다음과 같이 최적화할 수 있습니다.
1. 전송 측에서 BufferedReader를 만들고 키보드에서 내용을 입력합니다. 2. 수신 측에서는 while(ture) 루프를 추가하여 루프의 콘텐츠를 지속적으로 수신합니다.
import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; public class UDPReceive { public static void main(String[] args) throws IOException { System.out.println("接收端启动......"); // 1、建立UDP的Socket服务 DatagramSocket ds = new DatagramSocket(10000); // 2、创建数据包 byte[] buf = new byte[1024]; DatagramPacket dp = new DatagramPacket(buf, buf.length); // 3、使用接收方法将数据存储到数据包中 ds.receive(dp); // 该方法为阻塞式的方法 // 4、通过数据包对象的方法解析这些数据,例如:地址、端口、数据内容等 String ip = dp.getAddress().getHostAddress(); int port = dp.getPort(); String text = new String(dp.getData(), 0, dp.getLength()); System.out.println(ip + ":" + port + ":" + text); // 5、关闭Socket服务 ds.close(); } }
4. 채팅방 만들기
아아아아아아아아아
위 내용은 Java에서 UDP 전송을 시뮬레이션하는 발신자와 수신자의 예에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!