SooBlending

[TCP Socket ] TCP 소켓 통신 본문

Programming/Java

[TCP Socket ] TCP 소켓 통신

블랜더 2017. 11. 7. 17:56

<TCP전송방식>

1. 연결방식

    - 연결기반(connection-oriented)

    - 연결 후 통신(전화기)

    - 1:1 통신방식


2. 특징

    - 데이터의 경계를 구분 안 함.(byte-stream)

    - 신뢰성 있는 데이터 전송

    - 데이터의 전송순서가 보장.

    - 데이터의 수신여부를 확인함(데이터가 손실되면 재전송)

    - 패킷을 관리할 필요가 없음

    - UDP보다 전송속도가 느림


3. 관련 클래스

    - Socket, ServerSocket

    

<TCP소켓프로그래밍>

1. 서버 프로그램: 서버소켓을 사용, 서버 컴퓨터의 특정포트에서 

                   클라이언트의 연결요청을 처리할 준비

2. 클라이언트 프로그램: 접속할 서버의 IP주소와 포트 정보를 가지고 소켓을 생성해서

                              서버에 연결을 요청.

                              

3. 서버소켓은 클라이언트의 연결요청을 받으면 서버에 새로운 소켓을 생성해서

    클라이언트의 소켓과 연결되도록 한다.

    

4. 클라이언트의 소켓과 서버의 소켓이 일대일 통신.



 <Socket프로그램>

 - Socket은 전화기!!              

 - Server와 Client사이에 통신하려면 Socket을 통해 연결


 - Server

     ServerSocket객체를 가져야 함.

     ServerSocket ss = new ServerSocket(서비스할 포트넘버); //★1.

           Socket  s  =  ss.accept(); //클라이언트 접속 대기   //★2.

           

          OutputStream out =  s.getOutputStream();// 클라이언트에게 메시지 전송

          out.write("msg");//★4.

          

          InputStream in =    s.getInputStream();//클라이언트가 전달한 메시지 읽어오기

          in.read();//★7.

                  

                  

 - Client

      Socket객체를 생성

      예)  Socket s = new Socket("HOST정보", port번호); //★3.

         s를 read,write객체를 얻어서 서버와 통신

         in.read();//★5.

         out.write("msg");//★6.

Comments