[통신] CH. 10-1 소켓 시스템콜(TCP 사용법)

Kwaaaaan·2023년 3월 23일
2

통신

목록 보기
11/11
post-thumbnail

SOCKET socket(int af, int type, int protocol)

• 소켓 생성
• socket() 성공적으로 실행되어 소켓이 만들어지면 해당 소켓의 디스크립터 반환
• Af : 주소 영역 지정
• Type : 통신 타입 지정
• Protocol : 호스트간 통신에 사용할 프로토콜 지정

int bind(SOCKET s, const sockaddr *name, int namelen)

• 생성된 소켓에 주소 부여
• s : 클라이언트의 연결을 기다리는 소켓 객체. socket()으로 생성된 소켓 객체
• Name : 소켓과 연결할 주소 정보(type, port 등)를 담고 있는 구조체
• Namelen : name의 크기

int listen(SOCKET s, int backlog)

• 소켓 활성화
• S:클라이언트의 연결을 기다리는 소켓 객체. socket()으로 생성된 소켓객체
• Backlog : 보류 중인 연결 대기열의 최대 길이

SOCKET accept(SOCKET s, sockaddr addr, int addrlen);

• 임의의 클라이언트의 연결 요구가 들어올 때까지 대기.
• 연결 요청이 들어오면 둘 사이에 연결이 설정되고 서버에 새로운 소켓이 생성
• 이후 데이터 송수신은 새로 생성된 소켓 이용
• S: 클라이언트의 연결을 기다리는 소켓 객체. socket()으로 생성된 소켓 객체
• Addr : client 연결을 가져오면, 이 매개 변수에 client 주소 정보를 저장
• Addrlen : addr의 크기

int connect(SOCKET s, const sockaddr *name, int namelen);

• 클라이언트 프로세스에서 사용
• 매개변수로 설정된 주솟값이 가리키는 서버와 연결 설정
• S:서버에 연결하기 위해 만들어 둔 소켓 객체
• Name: 연결할 서버 정보(host, port, type 등)가 담긴 구조체
• Namelen: name 크기

int send(SOCKET s, const char *buf, int len, int flags);

연결형 서비스를 제공하는 환경에서 데이터 전송

• S: 소켓 객체
• Client: 서버에 연결된 소켓. Connect 이후
• Server : 대기 상태인 소켓. Accept 성공 이후.
• Buf : 전송할 데이터.
• Len : buf 의 길이.
• Flags : 호출이 이루어지는 방식을 지정

int recv(SOCKET s, const char *buf, int len, int flags);

• 연결형 서비스를 제공하는 환경에서 데이터 수신
• S: 소켓 객체
• Buf : 들어오는 데이터를 받을 버퍼
• Len : buf 의 길이
• Flags : 함수의 동작에 영향을 미치는 플래그 집합.

profile
스마트팩토리 개발자(를 꿈꾸며)

0개의 댓글