> Java > java지도 시간 > 본문

Java 데이터그램소켓

王林
풀어 주다: 2024-08-30 16:16:30
원래의
525명이 탐색했습니다.

Java DatagramSocket 클래스는 연결이 없고 데이터그램 패킷을 보내고 데이터그램 패킷을 받는 데 사용되는 네트워크 소켓 유형을 나타냅니다. 어떤 패킷이 전달되든 데이터그램 소켓은 서비스의 송수신 지점이 되며, 데이터그램 소켓을 사용하여 보내거나 받는 모든 패킷은 개별적으로 주소가 지정되어 목적지로 라우팅되며, 두 시스템 간에 여러 개의 패킷이 전송되는 경우 패킷의 라우팅은 다를 수 있으며 어떤 순서로든 도착할 수 있으며 SO_BROADCAST 옵션은 브로드캐스트 다이어그램 전송을 허용하는 새로 구성된 데이터그램 소켓에서 활성화됩니다.

광고 이 카테고리에서 인기 있는 강좌 JAVA MASTERY - 전문 분야 | 78 코스 시리즈 | 15가지 모의고사

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

구문

Java DatagramSocket의 구문은 다음과 같습니다.

DatagramSocket variable_name = new DatagramSocket();
로그인 후 복사

Java에서 DatagramSocket은 어떻게 작동하나요?

  • 데이터그램 소켓은 통신 링크와 데이터 패킷 송수신을 위해 DatagramSocket 클래스를 사용하여 클라이언트 프로그램 측과 서버 프로그램 측에서 생성됩니다.
  • 클라이언트 프로그램 측에서 데이터그램 소켓을 생성하기 위해 DatagramSocket() 생성자를 선택할 수 있고, 서버 프로그램 측에서 데이터그램 소켓을 생성하기 위해 DatagramSocket(int 포트) 생성자를 선택할 수 있습니다.
  • 데이터그램 소켓을 생성할 수 없거나 데이터그램 소켓을 포트에 바인딩할 수 없는 경우 생성자 중 하나에서 SocketException 개체가 발생합니다.
  • 프로그램이 데이터그램 소켓 개체를 생성하면 프로그램은 데이터그램 패킷을 보내기 위해 send(DatagramPacket dgp)를 호출하고 데이터그램 패킷을 받기 위해 receive(DatagramPacket dgp)를 각각 호출합니다.

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();
}
}
로그인 후 복사

출력:

Java 데이터그램소켓

설명: 위 프로그램에서는 DatagramSocket 클래스를 사용하여 데이터 패킷을 전송하는 프로그램과 DatagramSocket 클래스를 사용하여 데이터 패킷을 수신하는 프로그램의 두 세트가 생성됩니다. DatagramSocket 클래스를 사용하여 데이터 패킷을 전송하는 프로그램에서는 DatagramSocket 클래스의 인스턴스가 생성됩니다. 그런 다음 문자열이 변수 strn에 할당됩니다. 그런 다음 인터넷 IP 주소가 변수에 할당됩니다. 그런 다음 데이터그램 패킷이 생성되고 DatagramSocket 클래스의 send 메서드를 사용하여 데이터 패킷을 대상 IP 주소로 보냅니다.

DatagramSocket 클래스를 사용하여 데이터 패킷을 수신하는 프로그램에서는 DatagramSocket 클래스의 인스턴스가 생성됩니다. 그런 다음 바이트 클래스의 인스턴스가 생성됩니다. 그런 다음 데이터그램 패킷이 생성되고 DatagramSocket 클래스의 receive 메소드를 사용하여 소스 IP 주소로 데이터 패킷을 수신합니다.

건축자

DatagramSocket 클래스에는 여러 생성자가 있습니다. 그들은:

  • DatagramSocket(): 데이터그램 소켓은 DatagramSocket() 생성자를 사용하여 구성되며 로컬 호스트 시스템에서 사용 가능한 포트에 바인딩됩니다.
  • DatagramSocket(int): 데이터그램 소켓은 DatagramSocket() 생성자를 사용하여 생성되며 로컬 호스트 시스템의 지정된 포트에 바인딩됩니다.
  • DatagramSocket(int, InetAddress): DatagramSocket() 생성자를 사용하여 데이터그램 소켓이 생성되고 지정된 로컬 인터넷 주소에 바인딩됩니다.

Java 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());
}
}
로그인 후 복사

출력:

Java 데이터그램소켓

설명: 위 프로그램에는 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.

Kesimpulan

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿