>  기사  >  백엔드 개발  >  Java 소켓 프로그래밍(2부)(1)

Java 소켓 프로그래밍(2부)(1)

黄舟
黄舟원래의
2016-12-23 16:20:311706검색

자체 주소 지정 소켓(데이터그램 소켓)
​, 스트림 소켓을 사용하는 각 연결에는 일정 시간이 걸리기 때문에 이러한 오버헤드를 줄이기 위해 네트워크 API는 두 번째 유형의 소켓인 자체 주소 지정 소켓을 제공합니다. (데이터그램 소켓) 자체 주소 지정은 UDP를 사용하여 주소 지정 정보를 보냅니다(클라이언트 프로그램에서 서비스 프로그램으로 또는 서비스 프로그램에서 클라이언트 프로그램으로). 자체 주소 지정 IP 정보 패킷을 통해 여러 주소를 보낼 수 있다는 점입니다. - self-addressing 패킷에는 self-addressing 정보가 포함되고, IP ​​패킷에는 self-addressing 패킷이 포함되어 어드레싱 정보의 길이가 60,000바이트로 제한됩니다. 그림 2는 IP 패킷 내에 위치한 self-addressed 패킷의 self-addressing 정보를 보여줍니다.
TCP가 정보가 정보 대상에 도달하도록 보장하는 방식과 달리 UDP는 자체 주소가 지정된 정보 패킷이 대상에 도달하지 못한 경우 발신자에게 자체 주소가 지정된 패킷을 다시 보내도록 요청하지 않습니다. UDP는 각 자체 주소가 지정된 패킷에 오류 감지 정보가 포함되어 있기 때문입니다. 각 자체 주소가 지정된 패킷이 대상에 도달한 후 UDP는 간단한 오류 확인만 수행합니다. 감지에 실패하면 UDP는 자체 주소가 지정된 패킷을 삭제합니다. 보낸 사람에게 다시 요청하지 마십시오. 이는 우체국을 통해 편지를 보내는 것과 유사합니다. 보낸 사람은 편지를 보내기 전에 받는 사람과 연결을 설정할 필요도 없습니다.
자체 주소 지정 소켓 작업에는 DatagramPacket, DatagramSocket 및 MulticastSocket의 세 가지 클래스가 포함됩니다. DatagramPacket 객체는 self-addressed 패킷의 주소 정보를 나타내며, DatagramSocket은 클라이언트 프로그램과 서비스 프로그램의 self-addressing 소켓을 나타내며, MulticastSocket은 멀티캐스트 전송이 가능한 self-addressing 소켓을 나타냅니다. java.net 패키지에 있습니다.
DatagramPacket 클래스
Self-addressed 패킷을 사용하기 전에 먼저 DatagramPacket 클래스에 대해 숙지해야 하며, Self-addressed 패킷은 이 클래스가 생성한 객체에 바이트 배열 형태로 동시에 압축됩니다. 🎜> DatagramPacket에는 여러 생성자의 형태가 있지만 일반적으로 byte [] 버퍼와 int 길이라는 두 가지 매개변수가 있습니다. 버퍼 매개변수에는 자체 주소가 지정된 패킷 정보인 길이가 포함되어 있습니다. 바이트 배열의 길이를 나타냅니다.
가장 간단한 생성자는 DatagramPacket(byte [] buffer, int length)입니다. 이 생성자는 자체 주소가 지정된 데이터 패킷 배열과 배열 길이를 결정하지만 자체 주소가 지정된 데이터의 주소 및 포트 정보는 없습니다. 이 정보는 나중에 setAddress(InetAddress addr) 및 setPort(int port) 메소드를 호출하여 추가할 수 있습니다.
바이트 [] 버퍼 = 새 바이트 [100];
DatagramPacket dgp = 새 DatagramPacket(버퍼, buffer.length);
InetAddress ia = InetAddress.getByName("www.disney.com");
dgp.setAddress (ia);
dgp.setPort (6000); // 데이터그램 패킷을 포트 6000으로 보냅니다.

위 내용은 Java 소켓 프로그래밍(2부)의 내용입니다(1). , 더 많은 관련 내용을 보려면 PHP 중국어 웹 사이트 (www.php.cn)를 주목하세요!



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:XML 용어다음 기사:XML 용어