JAVA/코드

2022_10_31 연습04 package com.ssc.network (TCP통신연습)

0304호 2022. 10. 31. 17:38
package com.ssc.network;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

public class TCPClient {
	
	public static void main(String[] args) {
		
		
		try {
			Scanner sc = new Scanner(System.in);
			while(true) {
				Socket socket = new Socket(InetAddress.getByName("172.30.1.65"),9999);
			
				System.out.print("보낼 메시지 : ");
				String message = sc.nextLine();
				
				//메세지 보니기
				PrintWriter pw = new PrintWriter( socket.getOutputStream(), true );
				pw.println( message + "\n" );
				pw.flush();
				
				//메세지 받기
				BufferedReader br = new BufferedReader(
						new InputStreamReader(socket.getInputStream()));
				String response = br.readLine();
				System.out.println(response);
				
				socket.close();
				br.close();
				pw.close();
			
			}
			
			
		} catch (Exception e) {
			// TODO: handle exception
		}
	}

}​
package com.ssc.network;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class TCPServer {
	
	public static void main(String[] args) {
			//try~resources 구문으로 메모리 해제를 하지 않아도 됨
		try (ServerSocket ss = new ServerSocket(9999);){
			System.out.println("서버 대기중...");
			try {
				Socket socket = null;
				while(true) {
					//클라이언트의 요청을 대기하다가 클라이언트의 요청이 오면 접속됨
					socket = ss.accept();
					
					//접속자 정보 출력 (이걸로 IP가 어디서 접근한건지 확인함(중국, 해외 등등))
					System.out.println("접속자 정보 : " + socket.toString());
					
					//접속자와 문자열을 읽을 수 있는 버퍼드스트림을 생성
					BufferedReader br = new BufferedReader(
							new InputStreamReader(socket.getInputStream()));
					
					//한줄의 메세지 읽기
					String message = br.readLine();
					System.out.println(message);
					
					//메시지를 보낼수 있는 스트림 생성
					PrintWriter pw = new PrintWriter(socket.getOutputStream());
					pw.println("서버가 보내는 메시지");
					pw.flush();
					
					//정리 작성
					pw.close();
					br.close();
					socket.close();
				}
			} catch (Exception e) {
				System.out.println(e.getLocalizedMessage());
			}
			
		} catch (Exception e) {
			System.out.println(e.getLocalizedMessage());
		
		}
		
		
	}

}