본문 바로가기
Java

TCP/IP 소켓 통신이란?

by 신입같은 3년차 2017. 6. 27.

TCP/IP Socket 통신에 대해 알아보자.

 

- 클라이언트 프로그램과 서버 프로그램은 각각 자신이 포트를 통해 통신해야 한다. 연결을 할때도 포트를 사용하고 데이터를 교환할때도 포트를 사용한다.  자바 프로그램 안에서 포트를 사용하기 위해서는 소켓을 이용해야 한다.  자바안에서 소켓의 종류에는 서버소켓과 클라이언트 소켓이 있다.

 

 

Server Socket ( 서버 소켓 )

 

 - 서버 소켓은 말그대로 서버 프로그램에서만 사용하는 소켓이다. 서버소켓은 클라이언트로부터 연결 요청이 오기를 기다렸다가 연결 요청이 들어오면 클라이언트와 연결을 맺고 다른 소켓을 만드는 일을 한다.

 

 

Client Socket ( 클라이언트 소켓 )

 

 - 클라이언트 소켓은 기대랄 필요가 없기 때문에 바로 클라이언트 소켓을 생성한다. 클라이언트 프로그램에서 클라이언트 소켓은 서버프로그램으로 연결요청을 하는것과 데이터 전송을 하는 일을 한다.

 

 

서버 소켓과 클라이언트 소켓을 생성하고 사용하는 방법에 대해 알아보겠습니다.

 

 

서버 소켓 사용방법

 

 - ServerSocket server = new ServerSocket( 포트번호 );

 

//클라이언트로부터 연결 요청이 들어오면 연결을 맺고 클라이언트 소켓을 생성해 리턴한다.

 - Socket socket = server.accept();

 

 

클라이언트 소켓 사용방법


 - Socket socket = new Socket ( 서버 아이피번호 , 서버 포트번호 );

 

서버, 클라이언트간 데이터 전송방법

 

//데이터 수신에 사용할 입력 스트림 객체를 리턴.

InputStream input = socket.getInputStream();

 

//데이터 송신에 사용할 출력 스트림 객체를 리턴.

OutputStream output = socket.getOutputStream();

 

//파라미터로 넘겨준 데이터 송신.

String data = "Hello Yunjin";

output.wite(data);

 

//수신된 데이터를 읽어서 리턴.

String data = input.read();

 

//소켓을 닫는 메서드

socket.close();

 

//서버 소켓을 닫는 메서드

serverSocket.close();

 

 

 

--------------------------- Socket Exam ---------------------------

다음 예제를 실행하기 위해서는 2개의 컴퓨터를 사용하거나 커맨드 창을 두개 켜서 실행시키면 된다 ( win + R  -> cmd )

 

 

//클라이언트 소켓 코드


 

 

//서버 소켓 코드


 

반응형

'Java' 카테고리의 다른 글

Java 연산자의 종류 및 사용법  (0) 2017.06.29
Java 변수의 활용 및 기초 swap  (0) 2017.06.28
ASCII 코드표  (0) 2017.06.27
MaridDB를 사용한 간단한 JDBC 프로그래밍 예제  (0) 2017.06.26
Java GUI 프로그래밍 (3)  (4) 2017.06.24

댓글