-
UDP 기본 데이터 송/수신JAVA/Network - UDP 2020. 10. 16. 13:39
소켓을 통해 데이터를 받는다.
바쁜지 안바쁜지 간에 패킷을 보내고 받는다.단순 데이터 전송이다.
UDPSend.java
소스 코드
더보기import java.io.*; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class UDPSend { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); DatagramSocket ds = new DatagramSocket(); System.out.print("보낼 데이터 : "); String msg = in.readLine(); // IP주소의 마지막에는 0과 1은 쓰지 않는다. for (int i = 2; i < 254; i++) { InetAddress ia = InetAddress.getByName("192.168.0." + i); // 마지막은 포트 번호 DatagramPacket dp = new DatagramPacket( msg.getBytes(), msg.getBytes().length, ia,6999); // ds를 통해서 패킷을 보낸다. ds.send(dp); } System.out.println("데이터 전송 종료"); } }
위에서 IP주소에서 앞의 세 자리는 네트워크의 주소를 의미한다.
UDPReceive.java
소스 코드
더보기import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; public class UDPReceive { public static void main(String[] args) throws IOException { byte[] buf = new byte[100]; DatagramSocket ds = new DatagramSocket(6999); // 포트 번호 DatagramPacket dp = new DatagramPacket(buf, buf.length); // 가지온 데이터를 출력한다. while (true) { ds.receive(dp); // 소켓에서 패킷을 받는다. byte bmsg[] = dp.getData(); String msg = new String(bmsg,0,dp.getLength()); System.out.println(dp.getAddress() + " : " +msg); } } }
실행을 할 때, UDPReceive.java를 먼저 호출하고 나서, UDPSend.java를 호출한다.
아래의 실행결과는 Send이다.
아래의 실행결과는 Receive이다.
'JAVA > Network - UDP' 카테고리의 다른 글
UDP 수신쪽에 명령어 보내기 (0) 2020.10.17 UDP 파일 송/수신 (0) 2020.10.17