Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

internet socket

컴퓨터 네트워킹에서 인터넷 소켓 혹은 네트워크 소켓은 네트워크의 종단에 놓여서 원격으로 떨어져 있는 소프트웨어가 통신할 수 있도록 하는 소프트웨어 도구를 의미한다.

인터넷 소켓은 운영체제가 제공하는 TCP, IP프로토콜 스택을 이용할 수 있는 socket API로 제어할 수 있다.

소켓 API는 AT&T사에서 개발했으며, 후에 버클리 대학에서 공개된 버전의 소켓 API를 개발한다. 이 소켓을 BSD 소켓이라고 하며, 실질적인 산업 표준이 되었다. 리눅스를 포함한 모든 유닉스운영체제와 Mac 운영체제가 BSD Socket을 지원한다.

윈도는 윈속(winsock)에서 확장 소켓 API와 함께 BSD socket 인터페이스를 지원하고 있다.

소켓은 인터넷 주소포트 번호로 네트워크 상에서 유일한 소프트웨어를 찾을 수 있다. 인터넷 주소로 컴퓨터(정확한 표현은 네트워크 인터페이스이다)를 찾고 포트 번호로 컴퓨터에 있는 여러 소프트웨어 중 목적으로 하는 소프트웨어를 찾는다.

소켓 함수

accept socket(소켓)으로 부터 연결을 받아들인다.
bind 소켓에 주소와 포트를 bind 한다.
connect 소켓에 연결을 시도한다.
listen 소켓연결 대기열을 생성한다.
open 소켓 - 혹은 파일 - 을 생성한다.
read 소켓 - 혹은 파일 - 에서 읽는다.
write 소켓 - 혹은 파일 - 에 쓴다.
socketpair 소켓쌍을 생성한다.
recvfrom 소켓에서 메시지를 읽는다.
recvmsg 소켓으로 부터 메시지를 읽는다.
sendto 소켓에 메시지를 쓴다.
socket endpoint 소켓을 생성한다.
htonl 호스트 바이트 순서를 네트워크 바이트 순서로 변경
htons 호스트 바이트 순서를 네트워크 바이트 순서로 변경
ntohl 네트워크 바이트 순서로 호스트 바이스 순서로 변경
ntohs 네트워크 바이트 순서로 호스트 바이스 순서로 변경
inet_addr 인터넷 주소를 32bit 바이너리 주소로 변환한다.
inet_aton 인터넷 주소를 32bit 바이너리 주소로 변환한다. inet_addr의 최신버전

관련글