티스토리 뷰

TCP는 연결 지향적 프로토콜, 

TCP는 데이터를 정확하고 안정적으로 전달, 

TCP는 데이터를 보내기전 반드시 연결이 되어있어야함, 

     상대적으로 UDP에 비해 전송속도가 느릴수 있음



ServerSocket 클라이언트의 연결요청을 기다리면서 연결 수락을 담당하는 클래스

Socket 연결된 클라이언트의 통신을 담당하는 클래스


서버에 연결하려면 포트가 필요한데 이 포트를 바인딩 포트(Binding port)라고 함


ServerSocket을 생성할 때 해당 포트가 다른 프로그램에서 사용중이면 BindException 발생

ServerSocket은 연결 수락을 위해 accept() 메소드 실행해야함 연결되기 전엔 블로킹상태(thread 대기상태)

accept() 블로킹 상태일때 SeverSocket을 닫으려고 close() 메소드를 호출하면 SocketException 발생

serverSocket.close(); 포트를 언바인딩 시켜야 다른 프로그램에서 해당 포트 재사용 가능


리턴 타입

메소드 이름

용도

 String

getHostName() 

return Client IP  

 int

getPort() 

return Client Port 

 String

toString() 

 return IP, Port to String




서버에서 ServerSocket, Socket 생성 -> 클라이언트에서 socket생성 -> 서버에서 연결수락 accept메소드 실행


Socket 데이터 통신


클라이언트가 연결요청을 하고 서버가 연결 수락을 했다면

양쪽의 소켓 객체로부터 입력, 출력 스트림을 얻을수 있음

댓글
댓글쓰기 폼