몰입형
[몰입형] Unicast(유니캐스트)
다콩잉
2022. 9. 3. 16:32
Unicast(유니캐스트)
- 송신 노드 하나가 수신노드 하나에 데이터를 전송하는 1:1 통신방식
- 가장 많이 사용되는 트래픽
다음 코드는 Server와 Client가 1:1 방식으로 통식하는 Unicast 예시
1) Server
package Uni;
import java.net.*;
public class UniServer {
public static void main(String[] args) {
ServerSocket serverSocket = null;
Socket socket = null;
try {
serverSocket = new ServerSocket(9000);
socket = serverSocket.accept();
Thread thread1 = new SenderThread(socket);
Thread thread2 = new ReceiverThread(socket);
thread1.start();
thread2.start();
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
try {
serverSocket.close();
} catch (Exception ignored) {
}
}
}
}
2) Client
package Uni;
import java.net.*;
class UiClient{
public static void main(String[] args) {
Socket socket = null;
try{
socket = new Socket("127.0.0.1",9000);
Thread thread1 = new SenderThread(socket);
Thread thread2 = new ReceiverThread(socket);
thread1.start();
thread2.start();
}catch(Exception e){
System.out.println(e.getMessage());
}
}
}
3) Thread(Recieve)
package Uni;
import java.io.*;
import java.net.*;
public class ReceiverThread extends Thread {
Socket socket;
public ReceiverThread(Socket socket) {
this.socket = socket;
}
public void run() {
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while (true) {
String str = reader.readLine();
if(str == null)
break;
System.out.println("수신>" + str);
}
}catch(IOException e){
System.out.println(e.getMessage());
}
}
}
4)Thread(Send)
package Uni;
import java.io.*;
import java.net.Socket;
public class SenderThread extends Thread {
Socket socket;
public SenderThread(Socket socket) {
this.socket = socket;
}
public void run() {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
PrintWriter writer = new PrintWriter(socket.getOutputStream());
writer.flush();
while (true) {
String str = reader.readLine();
if (str.equals("bye"))
break;
writer.println(str);
writer.flush();
}
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
try {
socket.close();
} catch (Exception ignored) {
}
}
}
}
728x90