>Java >java지도 시간 >Java UDP 통신에 대한 자세한 소개

Java UDP 통신에 대한 자세한 소개

王林
王林앞으로
2019-11-26 14:32:513186검색

Java UDP 통신에 대한 자세한 소개

소개:

UDP는 사용자 데이터그램 프로토콜입니다. Java에서 UDP를 조작하려면 java.net 패키지 아래의 DatagramSocketDatagramPacket 클래스에서 사용자 데이터 메시지를 편리하게 제어할 수 있습니다. <code>java.net包下的DatagramSocketDatagramPacket类,可以方便的控制用户数据报文。

DatagramPacket类将数据字节填充到UDP包中,这称为数据报。 

DatagramSocket

DatagramPacket 클래스는 데이터 바이트를 데이터그램이라고 하는 UDP 패킷에 채웁니다.

DatagramSocket은 이 패킷을 보내는 데 사용됩니다. 데이터를 수락하는 경우 DatagramSocket에서 DatagramPack 개체를 수락한 다음 패키지에서 데이터 내용을 읽을 수 있습니다.

UDP는 비연결형 단순 통신을 위한 것으로 속도가 빠릅니다.

추천 온라인 비디오 튜토리얼:

java 온라인 비디오

1. DatagramSocket 클래스

생성자:

DatagramSocket()

인스턴스를 생성합니다. 일반적으로 클라이언트 프로그래밍에 사용됩니다. 일시적인 것입니다.

DatagramSocket(int port)

인스턴스를 생성하고 포트 포트의 패킷을 모니터링하세요.

DatagramSocket(int port, InetAddress laddr)

이것은 매우 유용한 빌더입니다. 머신에 둘 이상의 IP 주소가 있는 경우 해당 머신에 의해 생성된 인스턴스는 LocalAddr에서만 메시지를 받습니다.

DatagramSocket(SocketAddress bindaddr)

포트와 주소는 binaddr 개체에 지정됩니다.

일반적으로 사용되는 기능:

receive(DatagramPacket p)

데이터 패킷을 p로 수신합니다. 수신 방법은 차단입니다. 데이터그램 패킷이 수신되지 않으면 차단됩니다.

send(DatagramPacket p)

목적지로 메시지 p를 보냅니다.

setSoTimeout(int timeout)

시간 초과를 밀리초 단위로 설정하세요.

close()
DatagramSocket을 닫습니다. 애플리케이션이 종료되면 일반적으로 리소스를 적극적으로 해제하고 소켓을 닫습니다. 그러나 비정상적인 종료로 인해 리소스가 재활용되지 않을 수 있습니다. 따라서 프로그램이 완료되면 Socket을 닫거나, 예외를 catch한 후 Socket을 닫으려면 이 메서드를 적극적으로 사용해야 합니다.

2. DatagramPacket 클래스


DatagramPacket 클래스는 패킷을 처리하고, 바이트 배열, 대상 주소, 대상 포트 및 기타 데이터를 패킷으로 패키징하거나 패킷을 바이트 배열로 분해하는 데 사용됩니다.

Constructor:

DatagramPacket(byte[] buf, int length, InetAddress addr, int port)

buf 바이트 배열의 오프셋에서 시작하는 길이 길이의 데이터를 가져와 데이터 개체를 만듭니다. 대상 주소는 addr이고 대상 포트는 port입니다.

DatagramPacket(byte buf[], int offset, int length, SocketAddress address)

buf 바이트 배열의 오프셋에서 시작하는 길이 길이의 데이터를 검색하여 데이터 객체를 생성합니다. 대상 주소는 address

공통 함수:

getData() byte[]

인스턴스에서 메시지의 바이트 배열 인코딩을 가져옵니다.

setData(byte[] buf, int offset, int length)
데이터그램 패키지의 데이터 내용 설정

3. UDP 통신의 통신 프로세스

UDP 발신자:

1.

2. 데이터를 제공하고 데이터를 데이터 패킷으로 캡슐화합니다.

3. 소켓 서비스의 전송 기능을 통해 데이터 패킷을 보냅니다.

4. 리소스를 닫습니다.

UDP 수신기:

1. 일반적으로 포트에서 수신 대기하는 udpsocket 서비스를 정의합니다.

2. 수신된 바이트 데이터를 저장할 데이터 패킷을 정의합니다.

3. 소켓 서비스의 수신 메소드를 통해 수신된 데이터를 정의된 데이터 패킷에 저장합니다.

4. 데이터 패킷 개체의 고유한 기능을 통해 이러한 다양한 데이터를 꺼내 콘솔에 인쇄합니다.

5. 리소스를 닫습니다.

더 많은 관련 질문을 보려면 Java 문서 튜토리얼을 방문하세요. 🎜Java 시작하기🎜🎜

위 내용은 Java UDP 통신에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제