티스토리 뷰
* 본 포스팅은 한국소프트웨어진흥원 출처의 리눅스 네트워크 프로그래밍 PDF 파일을 토대로 작성되었습니다.
* 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있음을 밝힙니다.
소켓 개설
○ 통신을 하기위해 필요한 정보
- 통신에 사용할 프로토콜 (TCP 혹은 UDP)
- 사용자의 IP 주소
- 사용자의 포트번호
- 상대편의 IP 주소
- 상대편의 포트번호
소켓 만들기
○ 소켓 만들기
- 소켓 프로그래밍 시 가장 먼저 해야할 일
- 서버, 클라이언트 양측 모두 필요
- socket() 함수 이용 (에러 발생시 -1 리턴, 전역변수 errno에 에러코드)
※ socket() 함수
1 | int socket(int protocolFamily, int type, int protocol); |
○ protocolFamily (domain)
- 프로토콜 체계를 말하며 5가지 방식이 있음.
- PF_INET : 인터넷 프로토콜 (TCP/IP를 사용하기 위해 기본적으로 인터넷 프로토콜 지정)
- PF_INET6 : IENT IPv6 프로토콜
- PF_UNIX : 유닉스 방식 프로토콜
- PF_NS : 제록스 네트워크 시스템의 프로토콜
- PF_PACKET : 리눅스에서 패킷 캡쳐를 위해 사용
○ type (서비스 타입) : 프로토콜에 따라 3가지 방식이 있음
- SOCK_STREAM (스트림) : TCP 방식
- SOCK_DGRAM (데이터그램) : UDP 방식
- SOCK_RAW : Raw 방식(TCP나 UDP를 거치지 않고 바로 IP 계층 사용시)
○ protocol : 소켓에서 사용할 프로토콜
- IPPROTO_TCP : TCP 방식
- IPPROTO_UDP : UDP 방식
- 0 : type에서 미리 정해진 경우
'개인공부 > 소켓 프로그래밍' 카테고리의 다른 글
리눅스 소켓 프로그래밍 08 : TCP 서버 작성절차, 함수 (0) | 2014.02.11 |
---|---|
리눅스 소켓 프로그래밍 07 : TCP 클라이언트 프로그램 예제 (0) | 2014.02.08 |
리눅스 소켓 프로그래밍 06 : TCP 클라이언트 작성절차, 함수 (0) | 2014.02.07 |
리눅스 소켓 프로그래밍 05 : IP, 도메인 주소변환 (3) | 2014.02.03 |
리눅스 소켓 프로그래밍 04 : 소켓주소 구조체 (0) | 2014.02.02 |
리눅스 소켓 프로그래밍 03 : 디스크립터 확인 예제 (2) | 2014.02.02 |
리눅스 소켓 프로그래밍 01 : 소켓(Socket) 정의 (0) | 2014.02.02 |