UDP --- 사용자 데이터 그램 프로토콜은 간단한 데이터 그램 지향 전송 계층 프로토콜입니다. UDP는 신뢰성을 제공하지 않습니다. 응용 프로그램별로 IP 계층으로 전송 된 데이터 그램을 보내지 만 대상에 도달 할 수 없다고 보장하거나 데이터 패킷이 도착하는 순서를 보장하지는 않습니다. UDP는 데이터 그램을 전송하기 전에 클라이언트와 서버 간의 연결을 설정할 필요가 없으며 타임 아웃 레트라 싱과 같은 메커니즘이 없으므로 전송 속도가 매우 빠릅니다.
Java에서 UDP 구현 :
* UDP :
* 고객:
* 1. UDP 통신을위한 소켓 개체 생성-Datagramsocket (UDP 데이터 전송 및 수신) --- 데이터 그램 소켓
* 2. 데이터 준비, 캡슐화 패키지 --- DataGrampacket (데이터 패키지)
* 3. 보내기 메소드를 통해 데이터 보내기
* 4. 소켓 객체 소켓 객체를 닫습니다
* 서버 측 : 데이터를 수신합니다
* 1. 소켓 소켓 객체를 만들고 포트 번호를 바인딩합니다.
* 2. 패키지 개체 생성, 빈 배열 생성 및 데이터 수신 준비
* 3. 데이터를받습니다
* 4. 자원을 닫습니다
* UDP 방송 방법 :
* 동일한 네트워크 세그먼트의 모든 호스트는 포트가들을 경우 수신 할 수 있습니다.
* 클라이언트는 방송 및 포트 모니터링이 메시지를 수신하고 인쇄 할 수있는 서버를 보냅니다.
* 방송 구현 : 브로드 캐스트는 클라이언트가 전송하고 서버에서 수신합니다.
* 문자열 호스트 = "255.255.255.255"; // 모든 호스트를 방송합니다
* 10.0.122.255 ---- 처음 3 개의 네트워크 세그먼트가 10.0.122 인 모든 호스트를 나타냅니다.
코드 구현 :
클라이언트 (Send) :
import java.io.ioexception; import java.net.datagrampacket; import java.net.datagramsocket; import java.net.inetAddress; import java.net.socketexception; import java.net.unknownhostexception; public static void main (string) throwes {throws {] throws {argelscement {argelscence 객체 생성 // 데이터 그램 소켓을 구성하고 로컬 호스트의 사용 가능한 모든 포트에 바인딩하십시오. Datagramsocket Socket = 새로운 Datagramsocket (); // 2. 포장 바이트 [] arr = "클라이언트 : haha ...". getBytes (); // 네 가지 매개 변수 : 패킷 패킷의 길이 패킷 호스트 객체 포트 번호 Datagrampacket Packet = 새로운 Datagrampacket (arr, arr.length, inetAddress.getByName ( "10.0.122.255"), 4000); // 3. Socket.Send (패킷) 보내기; // 4. Resource Socket.close ()를 닫습니다. }}서버 측 (수신기 측) :
import java.io.ioexception; import java.net.datagrampacket; import java.net.datagramsocket; import java.net.socketexception; import java.util.arrays; public static void main (string [] args) trows ioexcept (4000); // 2 바이트 [] arr = 새로운 바이트 [1024]; Datagrampacket Packet = New Datagrampacket (ARR, ARR.LENGTH); // 3 프로그램이 실행될 때 수신 메소드는 청취 상태 serversocket.receive (패킷)에 있습니다. // 패키지 바이트에서 데이터를 가져 오십시오 [] arr1 = packet.getData (); System.out.println (새 문자열 (arr1)); // 4 serversocket.close (); }}
결과:
처음 3 개의 네트워크 세그먼트는 포트 번호 10.0.122가있는 모든 호스트에서 포트 번호 4000이있는 서버입니다. 그들이 열려있는 한, 그들은받을 수 있습니다.
클라이언트 : 하하. . . .
Java의 UDP를 기반으로 한 위의 방송 양식 (예제 설명)은 내가 공유하는 모든 내용입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.