Soquete Unix - Resumo
Aqui está uma lista de todas as funções relacionadas à programação de soquetes.
Funções de porta e serviço
O Unix fornece as seguintes funções para buscar o nome do serviço do arquivo / etc / services.
struct servent *getservbyname(char *name, char *proto) - Esta chamada pega um nome de serviço e um nome de protocolo e retorna o número da porta correspondente para esse serviço.
struct servent *getservbyport(int port, char *proto) - Esta chamada pega um número de porta e um nome de protocolo e retorna o nome do serviço correspondente.
Funções de ordenação de bytes
unsigned short htons (unsigned short hostshort) - Esta função converte quantidades de 16 bits (2 bytes) da ordem de bytes do host para a ordem de bytes da rede.
unsigned long htonl (unsigned long hostlong) - Esta função converte quantidades de 32 bits (4 bytes) da ordem de bytes do host para a ordem de bytes da rede.
unsigned short ntohs (unsigned short netshort) - Esta função converte quantidades de 16 bits (2 bytes) da ordem de bytes da rede para a ordem de bytes do host.
unsigned long ntohl (unsigned long netlong) - Esta função converte quantidades de 32 bits da ordem de bytes da rede para a ordem de bytes do host.
Funções de endereço IP
int inet_aton (const char *strptr, struct in_addr *addrptr)- Esta chamada de função converte a string especificada, na notação de ponto padrão da Internet, em um endereço de rede e armazena o endereço na estrutura fornecida. O endereço convertido estará em Network Byte Order (bytes ordenados da esquerda para a direita). Retorna 1 se a string é válida e 0 em caso de erro.
in_addr_t inet_addr (const char *strptr)- Esta chamada de função converte a string especificada, na notação de ponto padrão da Internet, em um valor inteiro adequado para uso como um endereço da Internet. O endereço convertido estará em Network Byte Order (bytes ordenados da esquerda para a direita). Ele retorna um endereço IPv4 ordenado por byte de rede binário de 32 bits e INADDR_NONE em caso de erro.
char *inet_ntoa (struct in_addr inaddr) - Esta chamada de função converte o endereço de host da Internet especificado em uma string na notação de ponto padrão da Internet.
Funções Socket Core
int socket (int family, int type, int protocol) - Esta chamada retorna um descritor de soquete que você pode usar em chamadas de sistema posteriores ou fornece -1 em caso de erro.
int connect (int sockfd, struct sockaddr *serv_addr, int addrlen)- A função de conexão é usada por um cliente TCP para estabelecer uma conexão com um servidor TCP. Esta chamada retorna 0 se se conectar com sucesso ao servidor, caso contrário, retorna -1.
int bind(int sockfd, struct sockaddr *my_addr,int addrlen)- A função bind atribui um endereço de protocolo local a um socket. Esta chamada retorna 0 se se conectar com sucesso ao endereço, caso contrário, retorna -1.
int listen(int sockfd, int backlog)- A função de escuta é chamada apenas por um servidor TCP para escutar a solicitação do cliente. Esta chamada retorna 0 em caso de sucesso, caso contrário, retorna -1.
int accept (int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen)- A função de aceitação é chamada por um servidor TCP para aceitar solicitações do cliente e estabelecer uma conexão real. Esta chamada retorna um descritor não negativo em caso de sucesso, caso contrário, retorna -1.
int send(int sockfd, const void *msg, int len, int flags)- A função de envio é usada para enviar dados através de soquetes de fluxo ou soquetes de datagrama CONECTADOS. Esta chamada retorna o número de bytes enviados, caso contrário, retorna -1.
int recv (int sockfd, void *buf, int len, unsigned int flags)- A função recv é usada para receber dados por meio de soquetes de fluxo ou soquetes de datagrama CONECTADOS. Esta chamada retorna o número de bytes lidos no buffer, caso contrário, retorna -1 em caso de erro.
int sendto (int sockfd, const void *msg, int len, unsigned int flags, const struct sockaddr *to, int tolen)- A função sendto é usada para enviar dados por soquetes de datagramas UNCONNECTED. Esta chamada retorna o número de bytes enviados, caso contrário, retorna -1 em caso de erro.
int recvfrom (int sockfd, void *buf, int len, unsigned int flags struct sockaddr *from, int *fromlen)- A função recvfrom é usada para receber dados de soquetes de datagrama UNCONNECTED. Esta chamada retorna o número de bytes lidos no buffer, caso contrário, retorna -1 em caso de erro.
int close (int sockfd)- A função close é usada para fechar a comunicação entre o cliente e o servidor. Esta chamada retorna 0 em caso de sucesso, caso contrário, retorna -1.
int shutdown (int sockfd, int how)- A função de desligamento é usada para fechar normalmente uma comunicação entre o cliente e o servidor. Esta função oferece mais controle em comparação com a função de fechamento. Ele retorna 0 em caso de sucesso, -1 caso contrário.
int select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval *timeout) - Esta função é usada para ler ou gravar vários sockets.
Funções auxiliares de soquete
int write (int fildes, const void *buf, int nbyte)- A função de gravação tenta gravar nbyte bytes do buffer apontado por buf para o arquivo associado ao descritor de arquivo aberto, fildes. Após a conclusão bem-sucedida, write () retorna o número de bytes realmente gravados no arquivo associado a fildes. Este número nunca é maior que nbyte. Caso contrário, -1 é retornado.
int read (int fildes, const void *buf, int nbyte)- A função read tenta ler nbyte bytes do arquivo associado ao descritor de arquivo aberto, fildes, no buffer apontado por buf. Após a conclusão bem-sucedida, write () retorna o número de bytes realmente gravados no arquivo associado a fildes. Este número nunca é maior que nbyte. Caso contrário, -1 é retornado.
int fork (void)- A função fork cria um novo processo. O novo processo, denominado processo filho, será uma cópia exata do processo de chamada (processo pai).
void bzero (void *s, int nbyte)- A função bzero coloca nbyte bytes nulos na string s. Esta função será usada para definir todas as estruturas de socket com valores nulos.
int bcmp (const void *s1, const void *s2, int nbyte)- A função bcmp compara a string de bytes s1 com a string de bytes s2. Assume-se que ambas as strings têm nbyte bytes.
void bcopy (const void *s1, void *s2, int nbyte)- A função bcopy copia nbyte bytes da string s1 para a string s2. Strings sobrepostas são tratadas corretamente.
void *memset(void *s, int c, int nbyte) - A função memset também é usada para definir variáveis de estrutura da mesma forma que bzero.