• 티스토리 홈
  • 프로필사진
    tjdudtn
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
tjdudtn
  • 프로필사진
    tjdudtn
    • 분류 전체보기 (299)
      • JAVA (155)
        • JAVA 수업 메모 (0)
        • JAVA 수업 파일 (0)
        • JAVA 기초문법 (18)
        • JAVA 객체지향 핵심 (25)
        • JAVA 유용한 클래스 (33)
        • JAVA Swing (18)
      • Data Structure( 자료구조 ) (17)
        • 컬렉션 프레임워크 (4)
        • JDBC (8)
      • 기초 개념 및 환경 설정 (17)
        • HTTP 기초 지식 (사전기반지식) (13)
        • 웹 서버와 웹 애플리케이션 서버(WAS)란? (1)
        • WAS와 웹 컨테이너의 역할 (1)
        • 아파치 톰캣 설치하기 (1)
        • 아파치 톰캣 시작과 폴더 구조 확인 (1)
      • 서블릿 기본 개념과 활용 (8)
        • 서블릿이란? (1)
        • 서블릿 Life Cycle 이란? (1)
        • 서블릿 작성, 배포, web.xml 설정의 이해 (1)
        • Get, Post 요청 방식의 이해 (1)
        • 서블릿과 서블릿 컨텍스트란? (1)
        • 서블릿과 데이터베이스 연동 (1)
        • 잠깐! server.xml과 context.xml.. (1)
        • 서블릿 필터와 리스너란 뭘까? (1)
      • JSP 기본 문법과 구조 (9)
        • JSP(Java Server Pages) 란? (1)
        • JSP 라이프사이클 (1)
        • JSP 기초문법 (1)
        • JSP 주석과 지시자 (1)
        • JSP 기본 태그 ( 스크립트릿, 선언, 표현식 .. (1)
        • JSP 지시자 ( Directive ) 간단 정리 (1)
        • JSP 내장 객체란 뭘까? (1)
        • 폼 처리와 요청 방식 (1)
        • 쿠키와 세션 관리 (1)
      • 서블릿과 JSP의 연동 (7)
        • 서블릿과 JSP의 개념과 차이점 (1)
        • 간단한 게시판 만들어 보기 (1)
        • JSP와 MVC 패턴 Todo 프로젝트 (1)
        • 커스텀 태그 ( JSTL ) 라이브러리 사용, (.. (1)
        • JSTL을 활용한 게시판 기능 만들기 (1)
        • JSP 파일 업로드 (1)
        • JSP 프로그래밍 활용 (1)
      • JavaScript (24)
        • JavaScript 게시판 만들기 (9)
      • Spring Boot (34)
        • Bank App 만들기 (deployment) (31)
      • Flutter (8)
      • MySQL (20)
      • 기술 면접 준비 자료 (0)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • 1:1 단방향 통신 (클라이언트측)
        2024년 09월 15일
        • tjdudtn
        • 작성자
        • 2024.09.15.:47
         
        import java.io.IOException;
        import java.io.PrintWriter;
        import java.net.Socket;
        
        public class ClientFile {
        
        	public static void main(String[] args) {
        		
        		// 클라이언트 측 준비물 
        		// 1. 서버측 IP주소와 포트 번호가 필요하다. 
        		// 2. 서버측 소켓과 연결될 소켓이 필요 하다. 
        		Socket socket = null; 
        		
        		try {
        			socket = new Socket("localhost", 5001);
        			PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
        			writer.print("안녕 반가워~");
        			// writer.flush(); 
        			// new PrintWriter(socket.getOutputStream(), true) --> true - auto flush 설정 
        			
        		} catch (Exception e) {
        			e.printStackTrace();
        		} finally {
        			if(socket != null) {
        				try {
        					socket.close();
        				} catch (IOException e) {
        					e.printStackTrace();
        				}
        			}
        		}
        	}
        }​
        ​
         

        PrintWriter 사용 이유

         
        1. 편리한 메서드: print(), println(), printf()와 같은메서드를 제공하여 다양한 형식의 데이터를 손쉽게 출력할 수 있습니다. 
         
        2. 자동플러시(autoFlush): PrintWriter를 생성할 때 autoFlush를 true로 설정하면, println() 등의 메서드를 호출할 때 자동으로 버퍼가 플러시되어 데이터를 즉시 전송합니다. 이는 네트워크 소켓과 같이 실시간 데이터 전송이 중요한 경우에 유용합니다.
         
        3. 버퍼링: 출력 데이터를 버퍼에 저장한 후 한 번에 출력하여 성능을 향상시킵니다. 필요시 flush() 메서드를 호출하여 강제로 데이터를 출력할 수도 있습니다.  
         

        주요 메서드

        print(): 다양한 데이터 타입을 출력합니다. (문자열, 정수, 부동 소수점 등)
        println(): 데이터를 출력하고 새로운 줄로 이동합니다.
        flush(): 버퍼를 강제로 플러스하여 출력 스트림에 데이터를 씁니다.
        close(): 출력 스트림을 닫습니다. 
         
         

        주의사항

        예외처리: PrintWriter는메서드 호출 중 발생하는 입출력 예외를 던지지않고 내부적으로 처리하므로, 스트림 상태를 주기적으로 확인하거나명시적으로 checkError() 메서드를 호출하여 오류를 확인해야 합니다. 

         
        로컬호스트와 루프백(Loopback) 개념

        로컬호스트(Localhost)

         
        개념: 로컬호스트는 현재 사용 중인 컴퓨터 자체를 나타내는 용어입니다. 네트워크 프로그래밍에서 로컬호스트는 localhost 또는 IP 주소 127.0.0.1 로 표현됩니다.
         
        용도: 네트워크 애플리케이션을 개발하거나 테스트할 때, 외부 네트워크에 의존하지 않고 자신의 컴퓨터에서 서버와 클라이언트를 실행하여 통신을 시도할 수 있습니다.

        루프백(Loopback)

         
        개념: 루프백은 네트워크 장치가 자신에게 데이터를 보내는 가상의 네트워크 인터페이스입니다. 127.0.0.1 주소를 통해 루프백 인터페이스로 데이터를 보내면, 데이터는 외부 네트워크로 나가지 않고 즉시 자신에게 돌아옵니다.
         
        용도: 네트워크 소프트웨어를 개발하거나 디버깅할 때, 외부 네트워크 환경 없이 로컬에서 모든 테스트를 수행할 수 있습니다.
         
        System Call 이란 뭘까?
        +----------------------------+
        |       Your Computer        |
        |  (localhost / 127.0.0.1)   |
        |                            |
        |   +-------------+          |
        |   | Application |          |
        |   +-------------+          |
        |        |                   |
        |        v                   |
        |  +-------------+           |
        |  | System Call |           |
        |  +-------------+           |
        |        |                   |
        |        v                   |
        |  +-------------+           |
        |  |   Network   |           |
        |  |   Stack     |           |
        |  +-------------+           |
        |        |                   |
        |        v                   |
        |   Loopback Interface       |
        |        ^                   |
        |        |                   |
        |  +-------------+           |
        |  |   Network   |           |
        |  |   Stack     |           |
        |  +-------------+           |
        |        |                   |
        |        v                   |
        |   +-------------+          |
        |   | Application |          |
        |   +-------------+          |
        |                            |
        +----------------------------+



        'JAVA > JAVA 유용한 클래스' 카테고리의 다른 글

        1:1 양방향 통신(채팅 기본 기능 구현)  (0) 2024.09.15
        1:1 양방향 통신  (0) 2024.09.15
        1:1 단방향 통신 (서버측)  (0) 2024.09.15
        Socket 이란 뭘까?  (0) 2024.09.15
        고수준 스트림(Data/Object Stream)  (0) 2024.09.15
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바