자바 - TCP를 이용한 에코 서버&클라이언트 작성에 대해서 알아보자
TCP를 이용한 에코 서버 & 클라이언트
1. 서버 측의 ServerSocket이 먼저 특정 포트 번호를 열고 대기하고 있는다.
2. 클라이언트 측 Socket 클래스가 생성할 때 서버 측 IP주소와 지정한 포트 번호를 지정하면
3. 서버 측 프로그램에서는 대기 중인 ServerSocket의 accept 메소드가 접속을 요청한 클라이언트 측 소켓 객체를 반환한다. 서버 측 프로그램에서 이렇게 반환된 Socket 객체로 클라이언트 측의 Socket객체와 통신을 한다.
ServerSocket 클래스의 주요 메소드
- ServerSocket(int port) : 클라이언트 요청을 받아들일 포트번호를 갖고 ServerSocket 객체 생성
- Socket accept() : 클라이언트의 요청을 받아 들인 다음 Socket 객체 생성해서 반환
- void close() : 서버 소켓 닫음
Socket 클래스의 주요 메소드
- Socket(String host, int port) / Socket(InetAddress addr, int port) : host는 접속할 서버의 IP번호, port는 접속할 포트 번호, addr: 접속할 서버의 InetAddress 객체
- InputStream getInputStream() : 현재 소켓과 관련된 InputStreram 객체 반환
- OutputStream getOutputStream() : 현재 소켓과 관련된 OutputStream 객체 반환
- void close() : 소켓 닫기
- InetAddress getInetAddress() : 소켓에 연결된 원격 컴퓨터의 InetAddress 객체 반환
- InetAddress getLocalAddress() : 소켓에 연결된 지역 컴퓨터의 InetAddress 객체 반환
- int getPort() : 소켓에 연결된 컴퓨터의 포트 번호 반환
- int getLocalPort() : 소켓에 연결된 지역 컴퓨터의 포트 번호 반환
에코 서버 만들기
에코 클라이언트 만들기
클라이언트 실행 시 서버가 먼저 실행되어 있어야 한다. (또한 서버와 클라이언트의 포트번호가 같아야한다.)
클라이언트가 실행되면 클라이언트로부터 아이피 주소를 얻어 출력한다.
클라이언트로부터 받은 데이터를 다시 클라이언트로 전달한다. (에코)
클라이언트에서 입력한 문자가 서버로 전달되어 다시 클라이언트로 반환되는 것을 확인할 수 있다.
quit문자를 전달받으면 서버는 종료된다.
'언어공부 > Java' 카테고리의 다른 글
자바 - 스트림(stream), 스트림의 특징 (0) | 2021.07.04 |
---|---|
자바 - 멀티 스레드를 이용한 에코 서버 & 클라이언트 작성 (0) | 2021.07.03 |
자바 - TCP 소켓 프로그래밍, Socket과 ServerSocket (0) | 2021.07.01 |
자바 - 소켓(socket) 프로그래밍, TCP와 UDP (0) | 2021.06.30 |
자바 - InetAddress 클래스와 URL(Uniform Resource Locator) (0) | 2021.06.30 |