Unix 소켓-요약
다음은 소켓 프로그래밍과 관련된 모든 기능 목록입니다.
포트 및 서비스 기능
Unix는 / etc / services 파일에서 서비스 이름을 가져 오는 다음과 같은 기능을 제공합니다.
struct servent *getservbyname(char *name, char *proto) −이 호출은 서비스 이름과 프로토콜 이름을 가져와 해당 서비스에 해당하는 포트 번호를 반환합니다.
struct servent *getservbyport(int port, char *proto) −이 호출은 포트 번호와 프로토콜 이름을 가져와 해당 서비스 이름을 반환합니다.
바이트 순서 함수
unsigned short htons (unsigned short hostshort) −이 함수는 16 비트 (2 바이트) 수량을 호스트 바이트 순서에서 네트워크 바이트 순서로 변환합니다.
unsigned long htonl (unsigned long hostlong) −이 기능은 32 비트 (4 바이트) 수량을 호스트 바이트 순서에서 네트워크 바이트 순서로 변환합니다.
unsigned short ntohs (unsigned short netshort) −이 기능은 16 비트 (2 바이트) 수량을 네트워크 바이트 순서에서 호스트 바이트 순서로 변환합니다.
unsigned long ntohl (unsigned long netlong) −이 기능은 네트워크 바이트 순서에서 호스트 바이트 순서로 32 비트 수량을 변환합니다.
IP 주소 기능
int inet_aton (const char *strptr, struct in_addr *addrptr)−이 함수 호출은 인터넷 표준 도트 표기법으로 지정된 문자열을 네트워크 주소로 변환하고 제공된 구조에 주소를 저장합니다. 변환 된 주소는 네트워크 바이트 순서 (바이트 순서는 왼쪽에서 오른쪽)입니다. 문자열이 유효하면 1을, 오류가 있으면 0을 반환합니다.
in_addr_t inet_addr (const char *strptr)−이 함수 호출은 인터넷 표준 도트 표기법으로 지정된 문자열을 인터넷 주소로 사용하기에 적합한 정수 값으로 변환합니다. 변환 된 주소는 네트워크 바이트 순서 (바이트 순서는 왼쪽에서 오른쪽)입니다. 32 비트 바이너리 네트워크 바이트 순서의 IPv4 주소 및 오류시 INADDR_NONE을 반환합니다.
char *inet_ntoa (struct in_addr inaddr) −이 함수 호출은 지정된 인터넷 호스트 주소를 인터넷 표준 도트 표기법의 문자열로 변환합니다.
소켓 코어 기능
int socket (int family, int type, int protocol) −이 호출은 나중에 시스템 호출에서 사용할 수있는 소켓 설명자를 반환하거나 오류시 -1을 제공합니다.
int connect (int sockfd, struct sockaddr *serv_addr, int addrlen)− 연결 기능은 TCP 클라이언트가 TCP 서버와 연결을 설정하는 데 사용됩니다. 이 호출은 서버에 성공적으로 연결되면 0을 반환하고 그렇지 않으면 -1을 반환합니다.
int bind(int sockfd, struct sockaddr *my_addr,int addrlen)− bind 기능은 소켓에 로컬 프로토콜 주소를 할당합니다. 이 호출은 주소에 성공적으로 바인딩되면 0을 반환하고 그렇지 않으면 -1을 반환합니다.
int listen(int sockfd, int backlog)− 수신 기능은 클라이언트 요청을 수신하기 위해 TCP 서버에 의해서만 호출됩니다. 이 호출은 성공하면 0을 반환하고 그렇지 않으면 -1을 반환합니다.
int accept (int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen)− 클라이언트 요청을 수락하고 실제 연결을 설정하기 위해 TCP 서버가 수락 기능을 호출합니다. 이 호출은 성공시 음수가 아닌 설명자를 반환하고, 그렇지 않으면 -1을 반환합니다.
int send(int sockfd, const void *msg, int len, int flags)− send 함수는 스트림 소켓 또는 CONNECTED 데이터 그램 소켓을 통해 데이터를 전송하는 데 사용됩니다. 이 호출은 전송 된 바이트 수를 반환하고, 그렇지 않으면 -1을 반환합니다.
int recv (int sockfd, void *buf, int len, unsigned int flags)− recv 함수는 스트림 소켓 또는 CONNECTED 데이터 그램 소켓을 통해 데이터를 수신하는 데 사용됩니다. 이 호출은 버퍼로 읽은 바이트 수를 반환하고, 그렇지 않으면 오류시 -1을 반환합니다.
int sendto (int sockfd, const void *msg, int len, unsigned int flags, const struct sockaddr *to, int tolen)− sendto 함수는 연결되지 않은 데이터 그램 소켓을 통해 데이터를 전송하는 데 사용됩니다. 이 호출은 전송 된 바이트 수를 반환하고, 그렇지 않으면 오류시 -1을 반환합니다.
int recvfrom (int sockfd, void *buf, int len, unsigned int flags struct sockaddr *from, int *fromlen)− recvfrom 함수는 연결되지 않은 데이터 그램 소켓에서 데이터를 수신하는 데 사용됩니다. 이 호출은 버퍼로 읽은 바이트 수를 반환하고, 그렇지 않으면 오류시 -1을 반환합니다.
int close (int sockfd)− 닫기 기능은 클라이언트와 서버 간의 통신을 종료하는 데 사용됩니다. 이 호출은 성공하면 0을 반환하고 그렇지 않으면 -1을 반환합니다.
int shutdown (int sockfd, int how)− 종료 기능은 클라이언트와 서버 간의 통신을 정상적으로 종료하는 데 사용됩니다. 이 기능은 닫기 기능에 비해 더 많은 제어를 제공합니다. 성공하면 0을, 그렇지 않으면 -1을 반환합니다.
int select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval *timeout) −이 기능은 여러 소켓을 읽거나 쓰는 데 사용됩니다.
소켓 도우미 기능
int write (int fildes, const void *buf, int nbyte)− write 함수는 buf가 가리키는 버퍼에서 열린 파일 설명자인 fildes와 연관된 파일에 nbyte 바이트를 쓰려고 시도합니다. 성공적으로 완료되면 write ()는 fildes와 관련된 파일에 실제로 기록 된 바이트 수를 반환합니다. 이 숫자는 nbyte보다 크지 않습니다. 그렇지 않으면 -1이 반환됩니다.
int read (int fildes, const void *buf, int nbyte)− read 함수는 열린 파일 설명자인 fildes와 관련된 파일에서 buf가 가리키는 버퍼로 nbyte 바이트를 읽으려고합니다. 성공적으로 완료되면 write ()는 fildes와 관련된 파일에 실제로 기록 된 바이트 수를 반환합니다. 이 숫자는 nbyte보다 크지 않습니다. 그렇지 않으면 -1이 반환됩니다.
int fork (void)− 포크 기능은 새로운 프로세스를 생성합니다. 자식 프로세스라고하는 새 프로세스는 호출 프로세스 (상위 프로세스)의 정확한 복사본입니다.
void bzero (void *s, int nbyte)− bzero 함수는 nbyte null 바이트를 문자열 s에 배치합니다. 이 함수는 null 값으로 모든 소켓 구조를 설정하는 데 사용됩니다.
int bcmp (const void *s1, const void *s2, int nbyte)− bcmp 함수는 바이트 문자열 s1을 바이트 문자열 s2와 비교합니다. 두 문자열 모두 길이가 nbyte 바이트 인 것으로 간주됩니다.
void bcopy (const void *s1, void *s2, int nbyte)− bcopy 함수는 문자열 s1에서 문자열 s2로 nbyte 바이트를 복사합니다. 겹치는 문자열은 올바르게 처리됩니다.
void *memset(void *s, int c, int nbyte) − memset 함수는 bzero와 같은 방식으로 구조 변수를 설정하는데도 사용됩니다.