소켓 (Socket)

네트워크를 경유하는 프로세스 간 통신의 접속점으로, 소켓을 통해 클라이언트와 서버 프로그램 사이에 데이터를 송수신할 수 있다. 

예를 들어 택배를 보낸다고 했을 때, 상자에 물건을 넣고 인적사항과 주소를 적어야 하는 역할이 소켓의 역할이라 할수 있다. 


- 서버 소켓과 클라이언트 소켓을 만든다.(socket())

- 서버 소켓은 로컬 IP를 가지고 포트를 열고(bind()) 클라이언트 연결을 기다린다.(listen())

- 클라이언트 소켓은 IP 주소를 이용해 목적지 호스트를 찾아내고 포트를 이용해 통신 접속점을 찾아내서 연결을 만든다.(connect())

- 서버 소켓이 연결을 수락하면(accept()), 포트를 이용해 데이터를 주고 받는다. (send(), recv())


사진 출처: http://nowonbun.tistory.com/315



안드로이드에서는 소켓을 사용할 때는 반드시 스레드를 사용해야 한다.





출처: https://www.edwith.org/boostcourse-android/lecture/17088/

+ Recent posts