socket api
서로 다른(혹은 같은) 호스트 상에서 실행되는 두 개 이상의 프로세스들이 컴퓨터 네트워크를 사용해 통신하기 위한 도구
- 네트워크 프로그래밍은 입출력 작업이 소켓기반으로 이루어짐.
또한 소켓은 여러 입출력 방법론 중 하나임.
표준 입출력,파일,터미널, 소켓 등으로 입출력.
-> 따라서 소켓 입출력 작업을 위한 파일 디스크립터가 필요함.
파일 디스크립터란?
프로세스가 파일에 접근하기 위해서는 파일이 프로세스에 의해 열린 상태가 되어야 하는데, 파일 디스크립터로 열린 파이르들을 식별함(숫자)
소켓과 입출력
open
read
write
close
- argv로 dev/pts/1과 같이 터미널을 주면 터미널에서 입력한 내용을 파일로 인식.
socket()
int socket(int domain,int type,int protocol);
성공 시 파일 디스크립터, 실패 시 -1반환
- domain: 소켓이 사용할 프로토콜 체계(IPv4,IPv6,UNIX...) 정보 전달
- type: 소켓의 데이터 전송 방식 정보 전달(TCP,UDP소켓,사용자정의)
- protocol: 두 컴퓨터간 통신에 사용되는 프로토콜 정보 전달(TCP,UDP프로토콜)