-
[몰입형] 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'몰입형' 카테고리의 다른 글
[몰입형] Multicast (0) 2022.09.06 [몰입형] 쿠키와 세션 (0) 2022.09.03 [몰입형] 절대경로와 상대경로 (0) 2022.09.03 [몰입형] OSI 7계층 (0) 2022.09.03 [몰입형] HTTP Method (0) 2022.09.03