프로그래밍/예전글

윈도우 기반의 소켓관련 함수

Cat체셔 2010. 8. 14. 17:26

#include<winsock2.h>
#pragma comment(lib, "ws2_32.lib")

SOCKET socket(int af, int type, int protocol);
 - 소켓을 생성해주는 함수.
매개변수
af          : 소켓이 사용할 프로토콜 체계(Protocol Familiy)정보 전달.
type       : 소켓의 데이터 전송방식에 대한 정보 전달.
proTocol : 두 컴퓨터 간 통신에 사용되는 프로토콜 정보 전달.
반환값
 - 성공 시 소켓 핸들, 실패 시 INVALID_SOCKET 반환


int bind(SOCKET s, const struct sockaddr *name, int namelen);
 - IP주소와 PORT번호 할당을 목적으로 하는 함수.
매개변수
s           : IP주소와 PORT번호를 할당받을 소켓을 전달.
name     :
namelen : name의 크기를 전달.
반환값
 - 성공 시 소켓 핸들, 실패 시 INVALID_SOCKET 반환


int listen(SOCKET s, int backlog);
 - 클라이언트 프로그램의 연결 요청을 받아들일 수 있는 상태가 되게 해주는 함수
매개변수
s          : 서버 소켓을 전달.
backlog : 연결을 기다리는 소켓들의 최대 크기를 전달.(보통은 SOMAXCONN를 넣어주네요.)
반환값
 - 성공 시 0, 실패 시 SOCKET_ERROR반환


SOCKET accept(SOCKET s, struct sockaddr *addr, int *addrlen);
 - 클라이언트 프로그램에서의 연결요청을 수락해주는 함수
매개변수
s          : 서버소켓 전달.
addr     : 서버의 자세한 설정을 전달.
addrlen : addr의 크기를 전달.
반환값
 - 성공 시 소켓 핸들, 실패시 INVALID_SOCKET 반환


int connect(SOCKET s, const struct sockaddr* name, int namelen);
 - 클라이언트가 서버에게 연결을 요청하는 함수.
매개변수
s           : 연결할 소켓 전달.
name     : 클라이언트의 자세한 설정을 전달.
namelen : name의 크기를 전달.
반환값
 - 성공 시 0, 실패 시 SOCKET_ERROR 반환


int closesocket(SOCKET s);
 - 소켓을 종료하는 함수.
매개변수
s : 종료하고 싶은 소켓 전달.
반환값
 - 성공 시 0, 실패 시 SOCKET_ERROR 반환