[JAVA] 1:1 양방향 통신

2024. 5. 24. 15:44·JAVA
서버측 코드 작성
인풋스트림, 아우풋 스트림이 둘다 필요
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerFile {

	public static void main(String[] args) {

		// 준비물
		// 1. 서버 소켓이 필요하다.
		// 2. 포트 번호가 필요하다. (0 ~ 65535 까지 존재)
		// 2.1 잘 알려진 포트 번호 : 주로 시스템 레벨 - 0 ~ 1023까지 사용
		// 2.2 등록 가능하는 포트 : 1024 ~ 49151까지
		// 2.3 동적/사설 포트번호 - 그 외 임시 사용을 위해 할당 된다.
		ServerSocket serverSocket = null;
		Socket socket = null; 
		try {
			serverSocket = new ServerSocket(5001);
			System.out.println("서버를 시작 합니다 - 포트번호 : 5001 ");
			socket = serverSocket.accept();
			System.out.println(">>> 클라이언트가 연결 하였습니다. <<<");

			// 대상은 소켓이다. ( input stream ) 작업
			InputStream input = socket.getInputStream();
			BufferedReader reader = new BufferedReader(new InputStreamReader(input));
			
			// 1. 클라이언트에서 먼저 보낸 데이터를 읽는다. 
			// 실제 데이터를 읽는 행위가 필요 하다.
			String message = reader.readLine();
			System.out.println("클라이언트 측 메세지 전달 받음 : " + message);

			// 2. 클라이언트 측으로 데이터를 보낸다. 
			// 대상은 소켓이다. ( output stream) 작업
			PrintWriter writer = new PrintWriter(socket.getOutputStream(), true); // auto flush
			writer.println("난 서버야, 클라이언트 반가워"); // 줄바꿈 포함 메서드 안녕 ---> 안녕\n


		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if(socket != null) {
				try {
					socket.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if (serverSocket != null) {
				try {
					serverSocket.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

'JAVA' 카테고리의 다른 글

[JAVA] 1: N 소켓 양방향 통신  (1) 2024.05.24
[JAVA] 1:1 양방향 통신(채팅 기본 기능 구현)  (0) 2024.05.24
[JAVA] 1:1 단방향 통신 (클라이언트측)  (0) 2024.05.24
[JAVA] 1:1 단방향 통신 (서버측)  (0) 2024.05.24
[JAVA] Socket 이란?  (0) 2024.05.23
'JAVA' 카테고리의 다른 글
  • [JAVA] 1: N 소켓 양방향 통신
  • [JAVA] 1:1 양방향 통신(채팅 기본 기능 구현)
  • [JAVA] 1:1 단방향 통신 (클라이언트측)
  • [JAVA] 1:1 단방향 통신 (서버측)
미로910
미로910
개발자를 꿈꾸는 민경이의 기록 블로그
  • 미로910
    개발 note
    미로910
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 설치 메뉴얼
      • HTML
      • JAVA
        • Java 기초
        • Java 응용
        • 자료구조
        • HTTP
        • JSP 프로그래밍
      • MySQL
        • MySQL 기본
        • 1일 1쿼리
      • CSS
      • Spring boot
      • JS
        • 게시판 만들기
      • Git
      • Flutter
        • MVVM 활용
        • 심화 버전
        • 1일 1 Flutter
      • 디자인 패턴의 활용
      • error note
      • My Project
        • [졸작] LLM 기반 특허 유사도 분석 시스템
        • 도서 관리 프로그램 (final project)
        • amigo
        • 친구 매칭 프로그램(FMP)
      • Python
      • 딥러닝
      • 네트워크
      • 공부 노트
        • 연구회
        • 자료구조
      • 기타
  • 블로그 메뉴

    • 홈
    • 전체보기
    • -----------------------
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Flutter
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
미로910
[JAVA] 1:1 양방향 통신
상단으로

티스토리툴바