DatagramSocket 03
숫자를 전송하면 구구단이 완성되어 돌아온다
숫자를 보내고 구구단을 받아 출력하는 내용의 소스
import java.net.*;
import java.io.*;
/*숫자를 수신측에 전송하고 완성된 구구단을 수신하여 화면에 출력한다*/
class DatagramSendReceive03 {
public static void main(String[] args) throws Exception {
byte[] data = {5};
DatagramPacket dp = new DatagramPacket(data, data.length, InetAddress.getByName("localhost"), 1234);
DatagramSocket ds = new DatagramSocket(12345); // 수신도 하려면 포트번호가 필요함
ds.send(dp);
System.out.println("파일데이터 전송완료");
byte[] buf = new byte[1024];
DatagramPacket dpReceive = new DatagramPacket(buf, buf.length);
ds.receive(dpReceive);
byte[] dataReceived = dpReceive.getData();
int len = dpReceive.getLength();
System.out.println(new String(dataReceived, 0, len));
ds.close();
}
}
숫자를 받아서 구구단을 완성하고 다시 수신측으로 전송해 주는 내용의 소스
import java.net.*;
import java.io.*;
/* 송신측에서 전송한 데이터를 수신하여 구구단을 완성하여 다시 전송한다*/
class DatagramReceiveSend03 {
public static void main(String[] args) throws Exception {
byte[] buf = new byte[4096];
DatagramPacket dp = new DatagramPacket(buf, buf.length);
DatagramSocket ds = new DatagramSocket(1234);
System.out.println("데이터 기다림");
ds.receive(dp);
byte[] data = dp.getData();
int len = dp.getLength();
System.out.println("데이터 수신됨");
String str = "";
for(int i=1;i<=9;i++) {
str += data[0]+ " x " + i + " = " + (data[0]*i)+"\n";
}
data = str.getBytes();
DatagramPacket dp1 = new DatagramPacket(data, data.length, dp.getAddress(), 12345);
ds.send(dp1);
System.out.println("데이터 송신완료");
ds.close();
}
}