[Java 22-6 MessageReciveApp] 다른 컴퓨터에서 보내온 메세지를 얻어와 출력하는 UDP 기반의 네트워크 프로그램

임승현·2022년 10월 19일

Java

목록 보기
124/126
package xyz.itwill.net;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

//다른 컴퓨터에서 보내온 메세지를 얻어와 출력하는 UDP 기반의 네트워크 프로그램
public class MessageReciveApp {
	public static void main(String[] args) throws IOException {
		//DatagramSocket 객체 생성
		//→ 포트를 활성화하여 다른 컴퓨터에서 보내온 패킷을 받을 수 있는 환경 제공 
		DatagramSocket socket=new DatagramSocket(4000);
		
		//전달받은 패킷에 저장된 값(메세지)을 저장하기 위한 byte 배열 선언
		byte[] data=new byte[1024];//1024=1MB(1024가 일반적인 크기)
		
		//연결 컴퓨터에서 보내온 패킷을 저장하기 위한 DatagramPacket 객체 생성
		//DatagramPacket(byte[] buf, int length) 생성자 이용
		DatagramPacket packet=new DatagramPacket(data, data.length);
		
		System.out.println("메세지 수신중...");
		
		//DatagramSocket.receive(DatagramPacket packet) : 연결 컴퓨터에서 
        보내온 패킷을 얻어와 저장하는 메소드
		//→ 패킷을 받기 전까지 스레드 일시 중지
		socket.receive(packet);
		
		//byte 배열에 저장된 원시데이터를 문자열로 변환하여 저장
		String message=new String(data);
		
		System.out.println("[결과]메세지 = "+message);
		
		socket.close();
	}
}

0개의 댓글