본문 바로가기
자바

UDP 소켓

by 복제비 2022. 4. 15.

UDP(User Datagram Protocol) 소켓

 

자바UDP를 지원하기 위해 DatagramPacket 클래스, DatagramSocket 클래스제공합니다.

 

UDP(User Datagram Protocol) 소켓 개요

 

비연결성 통신 방식을 의미합니다.

높은 신뢰성이 요구되지 않는 분야에 이용합니다.

TCP에 비해 네트워크에 부담을 주지 않는 방식입니다.

 

DatagramPacket 클래스


DatagramPacket 클래스는 정보를 주고 받기 위한 준비과정의 기능을 제공하는 클래스입니다.


DatagramPacket 클래스의 생성자


DatagramPacket(byte[ ]  buffer, int  size)

: 데이터수신하는 응용 프로그램에서 사용하는 생성자를 의미합니다.

buffer 는 수신되는 데이터를 저장할 바이트 배열을 의미합니다.
size 는 배열의 크기를 의미합니다.

 

DatagramPacket(byte[ ]  buffer, int  size, InetAddress  ia, int  port)

: 데이터송신하는 응용프로그램에서 사용하는 생성자를 의미합니다.

buffer 는  송신될 데이터가 저장되어 있는 배열을 의미합니다.
size 는  배열의 크기를 의미합니다.
ia 는  정보가 보내질 컴퓨터의 주소를 의미하며, InetAddress 객체를 사용하여 지정합니다.

port 는  컴퓨터의 포트 번호를 의미합니다.

 

DatagramPacket 클래스의 주요 메서드들

 

① InetAddress  getAddress( )

수신 응용 프로그램에서 사용하며, 정보를 보낸 컴퓨터의 주소를 반환하는 메서드입니다.

 

② byte[ ]  getData( )

패킷으로부터 데이터를 읽어 들여  바이트 배열로 반환하는 메서드입니다.

 

③ int  getLength( )

패킷의 바이트 수를 반환하는 메서드입니다.

 

④ int  getPort( )

포트번호를 반환하는 메서드입니다.

 

⑤ void  setAddress(InetAddress  ia)

ia 를 주소로 설정하는 메서드입니다.

 

⑥ void  setData(byte  buffer[ ])

buffer 의 내용을 패킷의 데이터로 설정하는 메서드입니다.

 

⑦ void  setLength(int  size)

패킷의 크기를 size 로 설정하는 메서드입니다.

 

⑧ void  setPort(int  pt)

포트번호를 pt 값으로 설정하는 메서드입니다.

 

DatagramSocket 클래스


DatagramSocket 클래스는 실제 정보를 주고 받는 기능을 제공하는 클래스입니다.


DatagramSocket 클래스의 생성자


① DatagramSocket( ) throws SocketException


② DatagramSocket(int  port) throws SocketException
port : 소켓이 사용할 포트 번호를 의미합니다.

 

DatagramSocket 클래스의 주요 메서드

 

① void  receive(DatagramPacket  dgram) throws IOException

현재의 소켓으로부터 정보를 읽어 dgram 패킷에 저장하는 메서드입니다.

 

② void  send(DatagramPacket  dgram) throws IOException

현재의 소켓을 통하여 dgram 패킷을 전송하는 메서드입니다.

 

③ void  close( ) throws IOException

소켓을 닫는 메서드입니다.

 

UDP 소켓 실습 프로그램

UDPReceiver 테스트를 위한 실습 프로그램은 다음과 같습니다.

UDPReceiver 테스트 프로그램에서 사용하는 args[0] 에 해당하는 포트 번호 아규먼트 입력해 줍니다.

UDPSender 테스트를 위한 실습 프로그램은 다음과 같습니다.

UDPSender 테스트 프로그램에서 사용하는 args[0], args[1], args[2]에 해당하는 아규먼트 입력해 줍니다.

보내는 데이터 항목만 바꿔서 4번 실행한 결과는 다음과 같습니다.

 

'자바' 카테고리의 다른 글

자바 Component 클래스  (0) 2022.04.21
Swing과 AWT  (0) 2022.04.18
TCP 소켓  (0) 2022.04.14
URLConnection 클래스  (0) 2022.04.13
URL 클래스  (0) 2022.04.12

댓글