Java DatagramSocket 클래스는 연결이 없고 데이터그램 패킷을 보내고 데이터그램 패킷을 받는 데 사용되는 네트워크 소켓 유형을 나타냅니다. 어떤 패킷이 전달되든 데이터그램 소켓은 서비스의 송수신 지점이 되며, 데이터그램 소켓을 사용하여 보내거나 받는 모든 패킷은 개별적으로 주소가 지정되어 목적지로 라우팅되며, 두 시스템 간에 여러 개의 패킷이 전송되는 경우 패킷의 라우팅은 다를 수 있으며 어떤 순서로든 도착할 수 있으며 SO_BROADCAST 옵션은 브로드캐스트 다이어그램 전송을 허용하는 새로 구성된 데이터그램 소켓에서 활성화됩니다.
광고 이 카테고리에서 인기 있는 강좌 JAVA MASTERY - 전문 분야 | 78 코스 시리즈 | 15가지 모의고사무료 소프트웨어 개발 과정 시작
웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등
구문
Java DatagramSocket의 구문은 다음과 같습니다.
DatagramSocket variable_name = new DatagramSocket();
DatagramSocket 클래스를 사용하여 데이터그램 패킷을 보내고 받으려면 아래 프로그램을 고려하세요.
코드:
//Java program to send datagram packets using DatagramSocket class import java.net.*; public class Sender { public static void main(String[] args) throws Exception { DatagramSocket datasoc = new DatagramSocket(); String strn = "Welcome to DatagramSocket class"; InetAddress ipaddr = InetAddress.getByName("127.0.0.1"); DatagramPacket dpac = new DatagramPacket(strn.getBytes(), strn.length(), ipaddr, 3000); datasoc.send(dpac); datasoc.close(); } } //Java program to receive datagram packets using DatagramSocket class import java.net.*; public class Receiver { public static void main(String[] args) throws Exception { DatagramSocket datasoc = new DatagramSocket(3000); byte[] buff = new byte[1024]; DatagramPacket dpac = new DatagramPacket(buff, 1024); datasoc.receive(dpac); String strn = new String(dpac.getData(), 0, dpac.getLength()); System.out.println(strn); datasoc.close(); } }
출력:
설명: 위 프로그램에서는 DatagramSocket 클래스를 사용하여 데이터 패킷을 전송하는 프로그램과 DatagramSocket 클래스를 사용하여 데이터 패킷을 수신하는 프로그램의 두 세트가 생성됩니다. DatagramSocket 클래스를 사용하여 데이터 패킷을 전송하는 프로그램에서는 DatagramSocket 클래스의 인스턴스가 생성됩니다. 그런 다음 문자열이 변수 strn에 할당됩니다. 그런 다음 인터넷 IP 주소가 변수에 할당됩니다. 그런 다음 데이터그램 패킷이 생성되고 DatagramSocket 클래스의 send 메서드를 사용하여 데이터 패킷을 대상 IP 주소로 보냅니다.
DatagramSocket 클래스를 사용하여 데이터 패킷을 수신하는 프로그램에서는 DatagramSocket 클래스의 인스턴스가 생성됩니다. 그런 다음 바이트 클래스의 인스턴스가 생성됩니다. 그런 다음 데이터그램 패킷이 생성되고 DatagramSocket 클래스의 receive 메소드를 사용하여 소스 IP 주소로 데이터 패킷을 수신합니다.
DatagramSocket 클래스에는 여러 생성자가 있습니다. 그들은:
아래는 언급된 예시입니다.
DatagramScoket 클래스의 다양한 메소드 사용법을 보여줍니다.
코드:
import java.io.IOException; import java.net.DatagramSocket; public class program { public static void main(String[] args) throws IOException { //Datagram Socket class Constructor is called DatagramSocket sock = new DatagramSocket(1235); // The method setSendBufferSize() method of datagram socket class is called sock.setSendBufferSize(20); // The method getSendBufferSize() method of datagram socket class is called System.out.println("The buffer size sent is : " + sock.getSendBufferSize()); // The method setReceiveBufferSize() method of datagram socket class is called sock.setReceiveBufferSize(20); // The method getReceiveBufferSize() method of datagram socket class is called System.out.println("The buffer size received is : " + sock.getReceiveBufferSize()); // The method setReuseAddress() method of datagram socket class is called sock.setReuseAddress(false); // The method getReuseAddress() method of datagram socket class is called System.out.println("The SetReuse address is set to : " + sock.getReuseAddress()); // The method setBroadcast() method of datagram socket class is called sock.setBroadcast(true); // The method getBroadcast() method of datagram socket class is called System.out.println("The setBroadcast is set to : " + sock.getBroadcast()); // The method setTrafficClass() method of datagram socket class is called sock.setTrafficClass(45); // The method getTrafficClass() method of datagram socket class is called System.out.println("The Traffic class is set to : " + sock.getTrafficClass()); // The method getChannel() method of datagram socket class is called System.out.println("The Channel is set to : " + ((sock.getChannel()!=null)?sock.getChannel():"null")); // The method setSocketImplFactory() method of datagram socket class is called sock.setDatagramSocketImplFactory(null); // The method close() method of datagram socket class is called sock.close(); // The method isClosed() method of datagram socket class is called System.out.println("If the Socket Is Closed : " + sock.isClosed()); } }
출력:
설명: 위 프로그램에는 program이라는 클래스가 정의되어 있습니다. 그런 다음 데이터그램 소켓 클래스의 인스턴스가 생성됩니다. 데이터그램 소켓 클래스의 setSendBufferSize() 메소드가 호출되어 버퍼 크기를 전송합니다. 그런 다음 데이터그램 소켓 클래스의 getSendBufferSize() 메소드가 호출되어 버퍼 크기를 수신합니다.
Kemudian kaedah setReceiveBufferSize() kelas soket datagram dipanggil, dan kemudian kaedah getReceiveBufferSize() kaedah kelas soket datagram dipanggil, yang digunakan untuk menghantar dan menerima saiz penimbal. Kemudian kaedah setReuseAddress() kaedah kelas soket datagram dipanggil, dan kaedah getReuseAddress() kaedah kelas soket datagram dipanggil untuk menghantar dan menerima alamat yang digunakan semula.
Kemudian kaedah setBroadcast() kaedah kelas soket datagram dipanggil, dan kemudian kaedah getBroadcast() kaedah kelas soket datagram dipanggil untuk menetapkan dan mendapatkan siaran. Kemudian kaedah setTrafficClass() kelas soket datagram dipanggil, dan kaedah getTrafficClass() kaedah kelas soket datagram dipanggil untuk menetapkan dan mendapatkan kelas trafik.
Kemudian kaedah getChannel() kelas soket datagram dipanggil, yang mengembalikan benar atau salah. Kemudian kaedah kaedah close() kelas soket datagram dipanggil untuk menutup soket. Kemudian kaedah isClosed() bagi kelas soket datagram dipanggil untuk menyemak sama ada soket ditutup atau tidak, dan ia mengembalikan nilai benar jika soket ditutup sebaliknya palsu.
Dalam tutorial ini, kami memahami konsep kelas DatagramSocket dalam Java melalui definisi, sintaks kelas DatagramSocket dalam Java, kerja kelas DatagramSocket dalam Java melalui contoh dan outputnya.
위 내용은 Java 데이터그램소켓의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!