UDP 통신을 위한 Sender Receiver 예제.
UDP 를 통한 byte 배열 전달
UDP 통신 프로그래밍 예제
UDP SenderTest
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class UDPSenderTest {
//1. DatagramSocket 객체를 생성(데이터 날아갈 활주로 역할)
//2. 보내고자 하는 데이터를 바이트 배열로 준비
//3. 준비된 데이터와 상대방의 IP주소 Port 번호를 매개변수로 해서 DatagramPacket을 준비
//4. 1에 3을 실어서 날리기.
public static void main(String[] args) {
DatagramSocket socket = null;
try {
//1
socket = new DatagramSocket(5000);
//2
String msg = "Hello World, Welcome to Hell!!!!!!!!!!!!!!!!!!";
byte[] data = msg.getBytes();
//3
DatagramPacket packet = new DatagramPacket(data, data.length, InetAddress.getByName("192.168.0.138"), 5000);
//4
socket.send(packet);
// 소켓에 포트지정, 빈바이트배열, 빈 패킷 준비해야함(수신하려면)
byte[] buf = new byte[512];
DatagramPacket receivePacket = new DatagramPacket(buf, buf.length);
socket.receive(receivePacket);
System.out.println("내가보낸 Data:"+new String(buf).trim());
} catch (SocketException e) {
e.printStackTrace();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {
//if( socket != null)
socket.close();
}
}
}
UDP Receiver
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class UDPReceiverTest {
//1. 사용할 포트를 지정하여 DtagramSocket을 생성
//2. 빈 Byte배열을 준비
//3. 빈 Byte배열과 연결된 빈 Packet을 준비(DatagramPacket)
//4. 1에 3을 대놓고 기다리기
public static void main(String[] args) {
DatagramSocket socket = null;
try {
System.out.println("기다리는중...");
socket = new DatagramSocket(5000);
byte[] buf = new byte[512];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
System.out.println(new String(buf).trim());
System.out.println("송신IP:"+packet.getAddress());
DatagramPacket sendPacket = new DatagramPacket(buf, buf.length, packet.getAddress(), 5000);
socket.send(sendPacket);
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
'Programing > JAVA' 카테고리의 다른 글
셀레니움을 이용한 웹브라우저 컨트롤 예제 (0) | 2018.10.25 |
---|---|
selenium Test (0) | 2018.10.25 |
로그) 1시간 이내 시간차 구간합치기 (0) | 2018.07.30 |
java 쓰레드 예제 (0) | 2018.03.19 |
jxl 을 이용한 엑셀쓰기에서, 입력받은 수(원하는 수)만큼 시트 생성하기 (0) | 2018.02.22 |