Java(Network)_Exam_01

2024. 11. 12. 18:37·Java/기초 내용 정리

2024-11-12

Server

 

Server

 

Server

 

Client

 

Client

 

Client

 

클라이언트의 연결을 기다리는 중...
클라이언트에서 보낸 문자 >>> Hello

문자 보내기 >>> Java
클라이언트에서 보낸 문자 >>> Hello

문자 보내기 >>> Python
클라이언트에서 보낸 문자 >>> Hello

문자 보내기 >>>

 

문자 보내기 >>> Hello
서버에서 받은 문자 >>> Java
문자 보내기 >>> Hello
서버에서 받은 문자 >>> Python
문자 보내기 >>> Hello
서버에서 받은 문자 >>> Java script
문자 보내기 >>>

 

package exam;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

public class ServerExam {

	public static void main(String[] args) {
		
		BufferedReader in = null;
		BufferedWriter out = null;
		ServerSocket listener = null;
		Socket socket = null;
		
		Scanner sc = new Scanner(System.in);
		
		try {
			listener = new ServerSocket();
			
			listener.bind(new InetSocketAddress("localhost", 7777));
			
			System.out.println("클라이언트의 연결을 기다리는 중...");
			
			socket = listener.accept();
			
			in = new BufferedReader(
					new InputStreamReader(socket.getInputStream()));
			
			out = new BufferedWriter(
					new OutputStreamWriter(socket.getOutputStream()));
			
			while (true) {
				
				//  클라이언트로부터 받은 한 줄 문자 읽기.
				String inputMsg =  in.readLine();
				
				if (inputMsg.equalsIgnoreCase("bye")) {
					
					System.out.println("클라이언트에서 bye로 연결을 종료함...");
					break;
				}
				System.out.println("클라이언트에서 보낸 문자 >>> " + inputMsg);				
				System.out.println();
				
				System.out.print("문자 보내기 >>> ");
				
				String outputMsg = sc.nextLine();
				
				out.write(outputMsg + "\n");
				
		  		//  out 스트림 버퍼에 있는 모든 문자열 전송
				out.flush();
			}
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			
			try {
				sc.close();
				socket.close();
				listener.close();
				out.close();
				in.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
		
	}
}

 

package exam;

import java.io.*;
import java.net.*;

import java.util.Scanner;

public class ClientExam {

	public static void main(String[] args) {
		
		BufferedReader in = null;
		BufferedWriter out = null;
		Socket socket = null;
		
		Scanner sc = new Scanner(System.in);
		
		try {
			socket = new Socket();
			
			socket.connect(new InetSocketAddress("localhost", 7777));
			
			
			in = new BufferedReader(
					new InputStreamReader(socket.getInputStream()));
			
			out = new BufferedWriter(
					new OutputStreamWriter(socket.getOutputStream()));
			
			while (true) {
				
				System.out.print("문자 보내기 >>> ");
				
				//  서버로 한 줄 문자 보내기.
				String outputMsg = sc.nextLine();
				
				if (outputMsg.equalsIgnoreCase("bye")) {
					
					out.write(outputMsg + "\n");
					
					out.flush();
					
					break;	//  클라이언트가 "bye" 문자열을 입력한 경우 서버로 문자 전송 후 실행 종료
				}
				
				out.write(outputMsg + "\n");		//  문자열을 서버로 보낸다
				 out.flush();
				 
				 /////  서버로부터 받은 문자열을 확인을 하자  /////
				 
				 //  서버로부터 받은 문자 수신 작업.
				 String inputMsg = in.readLine();
				 
				 System.out.println("서버에서 받은 문자 >>> " + inputMsg);
			}
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			
			try {
				sc.close();
				socket.close();
				out.close();
				in.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
	}
}

'Java > 기초 내용 정리' 카테고리의 다른 글

Java(Example)_DEPT  (0) 2024.12.12
Java(JDBC)_00  (0) 2024.12.12
Java(Network)_02~3  (0) 2024.11.12
Java(Network)_01  (0) 2024.11.12
Java(Lambda)_02  (1) 2024.11.12
'Java/기초 내용 정리' 카테고리의 다른 글
  • Java(Example)_DEPT
  • Java(JDBC)_00
  • Java(Network)_02~3
  • Java(Network)_01
mw41817
mw41817
일생의 개발 기록 저장소
  • mw41817
    IT 개발 일지
    mw41817
    • Index (487)
      • HTML (36)
        • 기초 내용 정리 (36)
      • CSS (29)
        • 기초 내용 정리 (29)
      • JavaScript (60)
        • 기초 내용 정리 (60)
      • JQuery (38)
        • 기초 내용 정리 (38)
      • Java (232)
        • 기초 내용 정리 (232)
      • JSP (46)
        • 기초 내용 정리 (46)
      • Spring, Boot (31)
        • 기초 내용 정리 (31)
      • DB (5)
        • Oracle SQL (5)
      • Code WorkBook (6)
        • programmers (6)
        • Baekjoon (0)
      • 기타 (1)
        • 유용한 사이트 (3)
  • 전체
    오늘
    어제
  • 글쓰기 관리
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 카테고리
    • 주인장 GitHub
  • 공지사항

  • 인기 글

  • 태그

    html #코딩 #프로그래밍 #기초
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
mw41817
Java(Network)_Exam_01
상단으로

티스토리툴바