rede
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
— | rede [2023/09/12 16:14] (atual) – criada - edição externa 127.0.0.1 | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== Programação Cliente Servidor em Linux ====== | ||
+ | Características para um sistema ser considerado cliente/ | ||
+ | - Uma arquitetura cliente/ | ||
+ | - A parte cliente e a parte servidor podem operar em diferentes plataformas de computador. | ||
+ | - Tanto a plataforma do cliente como a do servidor podem ser atualizadas sem que se tenha de necessariamente atualizar a outra plataforma. | ||
+ | - O servidor pode atender a vaŕios clientes simultaneamente. O cliente pode acessar vários servidores. | ||
+ | - Ambos incluem capacidade de operar em rede. | ||
+ | - A ação normalmente é iniciada no cliente. | ||
+ | |||
+ | A chave para entender o conceito de programação cliente/ | ||
+ | |||
+ | Um cliente pode manter um relacionamento com diferentes servidores, que o atendam. Um servidor pode atender múltiplos clientes. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Um atributo do servidor é pode atender vários clientes. Uma forma é criar servidores escravos para atender aos clientes. Neste exemplo, para cada cliente tem-se um servidor dedicado (relação de 1 para 1). | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== Aspectos da Conexão ===== | ||
+ | São dois os tipos de conexão utilizados em uma comunicação. Conexão orientada e conexão não orientada. | ||
+ | |||
+ | ==== ConnectionLess ==== | ||
+ | Na conexão do tipo // | ||
+ | * Cada mensagem é independente. | ||
+ | * Não existe garantia de entrega (a mensagem procura o servidor). | ||
+ | * Mensagens de mesma origem podem chegar ao servidor por caminhos diferentes. | ||
+ | * A sequência de envio pode ser diferente da sequência de chegada. | ||
+ | |||
+ | Este tipo de comunicação também é chamada de comunicação por datagramas. O serviço postal é um exemplo na vida real para este tipo de comunicação, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ==== Connection-Oriented ==== | ||
+ | O outro tipo de comunicação é conhecido como // | ||
+ | * O caminho entre as partes é previamente estabelecido e conhecido. | ||
+ | * Existe garantia de entrega. | ||
+ | * A sequência de envio e recepção é respeita. | ||
+ | * A cada envio do cliente, o servidor responde confirmando o recebimento. | ||
+ | |||
+ | Este tipo de comunicação é conhecido como // | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== Funções do Linux ===== | ||
+ | |||
+ | A programação para rede utiliza as seguintes funções: | ||
+ | * [[socket]] | ||
+ | * [[htonl]], [[htonl|htons]], | ||
+ | * [[bind]] | ||
+ | * [[inet_aton]], | ||
+ | * [[connect]] | ||
+ | * [[listen]] | ||
+ | * [[accept]] | ||
+ | * [[send]] | ||
+ | * [[recv]] | ||
+ | * [[send|sendto]] | ||
+ | * [[recv|recvfrom]] | ||
+ | * [[close]] | ||
+ | * [[shutdown]] | ||
+ | * [[getpeername]] | ||
+ | * [[gethostbyname]] | ||
+ | * [[select]] | ||
+ | |||
+ | E utiliza as seguintes estruturas: | ||
+ | * [[sockaddr_in]] | ||
+ | |||
+ | ===== Exemplos de Aplicação ===== | ||
+ | * Cliente e Servidor [[exemplo_tftp|TFTP]] (usando UDP) | ||
+ | * Cliente e Servidor de [[exemplo_eco|ECO]] (usando TCP) | ||
+ | |||
+ | --- // |
rede.txt · Última modificação: 2023/09/12 16:14 por 127.0.0.1