Unix Sockets em C parte 1

Irei agora iniciar agora alguns posts sobre programação de Sockets em C para ambientes Unix (utilizei o linux para testes).  Antes de iniciar a programação, será necessário incluir os seguintes cabeçalhos no seus programas, mas dependendo da situação necessitará de outros:

#include <sys/types.h>
#include <sys/sockets.h>
#include <netinet/in.h>
#include <netdb.h>

Os sockets, como a maioria da comunicação de entrada e saída no unix, são declarados utilizando inteiros:

int soquete;

A estrutura que contém os dados relacionados ao host ao qual se quer conectar é a sockaddr_in:

struct sockaddr_in {
short int sin_family;         /* Familia do endereco */
unsigned short int sin_port;  /* Numero da porta */
struct in_addr sin_addr;      /* IP do Host */
unsigned char sin_zero[8];    /* Zera a estrutura, algum espaco como
struct sockaddr */

}

O short int sin_family normalmente será AF_INET, que significa (ARPA INTERNET PROTOCOLS),  sin_port o número da porta e sin_addr o número do ip do host.

Para criar um socket utilizamos a função int socket(int domain, int type, int protocol);

O tipo de socket será SOCK_STREAM ou SOCK_DGRAM, onde o primeiro é utilizado por conexões TCP e o segundo por UDP.

O número do protocolo usado será:

0 – IP – INTERNET PROTOCOL
1 – ICMP – INTERNET CONTROL MESSAGE PROTOCOL
2 – IGMP – INTERNET GROUP MULTICAST PROTOCOL
3 – GGP – GATEWAY-GATEWAY PROTOCOL
6 – TCP – TRANSMISSION CONTROL PROTOCOL
17 – UDP – USER DATAGRAMA PROTOCOL

continua…

Deixe um comentário