개인공부/Java Unicast 프로그램 - UniClient.java import java.io.*; import java.net.*; public class UniClient { private String ip; private int port; private String str; MsgListener msgListener = null; msgWriter msgWriter = null; public UniClient(String ip, int port) throws IOException { this.ip = ip; this.port = port; Socket tcpSocket = getSocket(); msgListener = new MsgListener(tcpSocket); msgWriter = new msgWriter(tcpSocket); msgListener.start(); msgWriter.start(); } public Socket getSocket() { Socket tcpSocket = null; try { tcpSocket = new Socket(ip, port); } catch (IOException ioe) { ioe.printStackTrace(); System.exit(0); } return tcpSocket; } public static void main(String[] args) throws IOException { new UniClient("localhost", 12345); } } class MsgListener extends Thread { Socket socket; private String str; MsgListener(Socket _s) { this.socket = _s; } public void run() { try { InputStream is_socket = socket.getInputStream(); BufferedReader bufferR = new BufferedReader( new InputStreamReader(is_socket)); while (true) { str = bufferR.readLine(); if (str.equals("bye")) { System.out.println("소켓통신 종료하겠습니다."); break; } else { System.out.println("Echo Result : " + str); } } } catch (Exception e) { System.out.println("err"); } } } class msgWriter extends Thread { Socket socket; private String str; BufferedReader file; msgWriter(Socket _s) { this.socket = _s; } public void run() { try { OutputStream os_socket = socket.getOutputStream(); BufferedWriter bufferW = new BufferedWriter( new OutputStreamWriter(os_socket)); while (true) { Thread.sleep(1000); System.out.print("입력 : "); file = new BufferedReader( new InputStreamReader(System.in)); str = file.readLine(); // str += System.getProperty("line.separator"); 구버전용 개행문자 str += System.lineSeparator(); bufferW.write(str); bufferW.flush(); } } catch (Exception e) { System.out.println("err"); } } } UniServer.java import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class UniServer { ServerSocket ss = null; Client cients; public static void main(String[] args) { UniServer server = new UniServer(); Socket socket = null; try { server.ss = new ServerSocket(12345); System.out.println("Server > Server Socket is Created... "); while (true) { socket = server.ss.accept(); UniChat c = new UniChat(socket); c.start(); } } catch (IOException e) { System.out.println("Server > 입출력예외 발생"); } } } class UniChat extends Thread { Socket socket; private BufferedReader bufferR; private BufferedWriter bufferW; private InputStream is; private OutputStream os; UniChat(Socket _socket) { this.socket = _socket; } public void run() { try { is = socket.getInputStream(); os = socket.getOutputStream(); while (true) { bufferR = new BufferedReader(new InputStreamReader(is)); bufferW = new BufferedWriter(new OutputStreamWriter(os)); String message = bufferR.readLine(); System.out.println("수신메시지 : " + message); message += System.getProperty("line.separator"); bufferW.write(message); bufferW.flush(); } } catch (Exception e) { System.out.println("에러"); } } } 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기'기'발하고 '창'의적인 블로그 Contents 당신이 좋아할만한 콘텐츠 java 소켓 멀티캐스트 && JFrame 2022.09.06 쿠키와 세션 2022.09.04 Java 입출력(I/O), 스트림(Stream), 버퍼(Buffer) 개념 2022.09.02 URL GET POST 방식 2022.09.02 댓글 0 + 이전 댓글 더보기