티스토리 뷰

반응형



* 본 포스팅은 한국소프트웨어진흥원 출처의 리눅스 네트워크 프로그래밍 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에서 미리 정해진 경우





반응형
프로필사진

Yowu (Yu Yongwoo)

흔한 Node.js/Java 백엔드 개발자입니다
Ubuntu와 MacOS 데스크탑 개발 환경을 선호합니다
최근에는 vscode와 IntelliJ를 사용하고 있습니다
vscode에는 neovim, IntelliJ는 ideaVim
개발용 키보드는 역시 HHKB Pro 2 무각입니다
락 밴드에서 드럼을 쳤습니다

최근에 올라온 글
최근에 달린 댓글
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함
Total
Today
Yesterday