Sockets
Sockets
Sockets
Utilizada para comunicação entre computadores e processos. Associada aos protocolos TCP e UDP
Sockets
Socket é um nome figurativo associado a um descritor semelhante ao utilizado em arquivos. No linux a socket API é derivada do BSD Unix, permitindo portabilidade entre os *nix.
Sockets
Funcionamento:
– Abrimos um descritor e operamos sobre ele read, write e ioctl, como se fosse em um arquivo. – Aberetura de um socket, seja para leitura ou escrita requer preparações para indicar o endereço e porta a ser utilizada, assim como os protocolos.
Sockets
Struct sockaddr sockaddr_in in_addr hostent tcphdr iphdr ifreq
Alguma structs importantes.
Nome Socket address Socket address internet Internet address Host entry Tcp header Ip header Interface data Uso Info sobre endereço do socket, genérica Forma mais fácil de endereçar elementos de um socket O próprio endereço internet Recebe os dados sobre o nome/end. E protocolos associados Cabeçalho tcp Descrição de cabeçalho ip Dados e flags de interface de rede
Sockets
Bibliotecas:
#include #include #include #include #include #include #include
Sockets - Exemplo
TCP/IP: – Conexão ponto a ponto com checagem de erro, integridade e controle de tráfego Servidor: – Atenderá na porta 1200 e imprimirá cada texto recebido por conexão.
Sockets - Exemplo
#include #include #include #include #include #include #include #include #include #include #define PORT 1200 #define BACKLOG 4
Inicialização do socket
int main (int argc, char **argv) { struct sockaddr_in server; struct sockaddr_in client; int sockfd,sockfd2,n_bytes; char msg[50]; int size, visits=0; if ((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1) { fprintf(stderr,"Erro de Socket \n"); exit(-1); }
Sockets - Exemplo sockfd = socket(AF_INET,SOCK_STREAM,0)
Familia de protocolos
Sequência de dados com controle
0 irá escolher o protocolo