Programação. Para estas funções, é necessário incluir a biblioteca: Seguem as operações mais comuns com arquivos.



Documentos relacionados
Aula de Socket. Rafael De Tommaso do Valle

Aula 11 Bibliotecas de função

Programação com Sockets TCP e UDP - Cliente. Gustavo Leitão

Sistemas de Operação Sockets

Aula Prática. Comunicação em SOCKTS. Disciplina: INF01151

Algoritmos e Programação _ Departamento de Informática

Versões Todos os módulos devem ser atualizados para as versões a partir de 03 de outubro de 2013.

MANUAL DE INSTALAÇÃO

Exercícios de Java Aula 17

Administração de Redes Servidores de Aplicação

H. Problemas/outras situações na ligação com a Segurança Social;

Novo Sistema Almoxarifado

Processo de envio de de marketing

Bibliotecas. Apoio à Programação Distribuída. Socket. Socket. bibliotecas bibliotecas+ferramentas linguagens de programação distribuídas

Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza

UNIVERSIDADE FEDERAL DE RONDÔNIA

DISCIPLINA: Matemática. MACEDO, Luiz Roberto de, CASTANHEIRA, Nelson Pereira, ROCHA, Alex. Tópicos de matemática aplicada. Curitiba: Ibpex, 2006.

TROCA DE MENSAGENS SOCKETS. Comunicando processos através de SOCKETS. SOCKETS com conexão. SOCKETS sem conexão

COMO CONFIGURAR SUA(S) CONTA(S) NO MICROSOFT OFFICE OUTLOOK

sockets interprocess communication Taisy Weber

Modelo Cliente/Servidor e Introdução a Sockets

Código: Data: Revisão: Página: SUMÁRIO

Comunicação entre Processos

06/10/2015. Modelo TCP/IP Camada de Transporte DISCIPLINA: TECNOLOGIA DE REDES DE COMPUTADORES. UDP User Datagram Protocol. UDP User Datagram Protocol

Um Tutorial sobre Sockets Parte I

Engenharia Elétrica Eletrônica Slides 20: TCP/IP em Winsocks 2. API do Windows para programar utilizando o protocolo TCP/IP Prof. Jean Marcelo SIMÃO

Modelo de Comunicação. Programa Nacional para a Promoção da Saúde Oral

2º Passo Criar a conexão via ODBC (Object DataBase Conection)

Manual. Autorizador da UNIMED

Programação de Sockets em C/C++

IBOConsole Instalação e Configuração. Ferramenta para gerenciamento do banco de dados.

Manual de Instalação

Tutorial Sistema Porto Sem Papel

Soquetes TCP. Jean Ribeiro Damasceno. Escola de Engenharia Universidade Federal Fluminense (UFF) Rua Passo da Pátria, 156 Niterói RJ Brasil

Event Viewer - Criando um Custom View

FKcorreiosg2_cp1 - Complemento Transportadoras

ALTERAÇÕES NO SISTEMA ORION

Diretor Conselheiro Técnico Consultores de serviços. Responsável pela Qualidade Gerente de Vendas Garantista

Programação de Computadores I. Linguagem C Arquivos

10. Escreva um programa que leia um texto e duas palavras e substitua todas as ocorrências da primeira palavra com a segunda palavra.

Boletim Técnico. CAGED Portaria 1129/2014 MTE. Procedimento para Implementação. Procedimento para Utilização

Linguagem de. Aula 07. Profa Cristiane Koehler

1. Objetivo: Lançar novo produto para bloqueio do veículo via celular GSM e rastreador GSM com localização por GPS.

SOGILUB.NET MANUAL DO UTILIZADOR

DISCIPLINA: Matemática e Matemática Aplicada

Estruturas de Dados. Profa. Juliana Pinheiro Campos

Processo TCar Balanço Móbile

1 Funções básicas de implementação de arquivos

Legenda da Mensagem de Resposta à Verificação de Elegibilidade (respostaelegibilidade)

Persistência de Dados

Administração de Redes Redes e Sub-redes

Vensis PCP. Rua Américo Vespúcio, 71 Porto Alegre / RS (51) comercial@vensis.com.br

Trabalho 3: Agenda de Tarefas

Comunicação entre processos. Sistema centralizado

Controle de Atendimento de Cobrança

A) O volume de cada bloco é igual à área da base multiplicada pela altura, isto é, 4 1

Comunicação entre pai e filho

Cliente UDP. Programação sockets. Agenda. Cliente UDP. Resumo de Chamadas UDP. Resumo das chamadas UDP. Resumo de Chamadas UDP.

HARDWARE e SOFTWARE. O Computador é composto por duas partes: uma parte física (hardware) e outra parte lógica (software).

Sumário. Introdução ao TCP/IP e à Internet API Sockets para comunicação via redes Exemplos

Manual de Configuração

Transformadores. Transformadores 1.1- INTRODUÇÃO 1.2- PRINCÍPIO DE FUNCIONAMENTO

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

Arquivos binários em Python

Programação para Android. Aula 07: Persistência de dados Shared Preferences, Internal e External Storage

Aula 8 Vetores e Ponteiros

Vensis Manutenção. Rua Américo Vespúcio, 71 Porto Alegre / RS (51) comercial@vensis.com.br

Cliente/Servidor. Programação com Sockets. Graça Bressan. Graça Bressan/LARC

IBOConsole Recuperação do Banco de Dados. Ferramenta de manutenção para recuperação de banco de dados.

UML. Diagrama de Classes de Projeto e Diagrama de Objetos Análise e Projeto de Software. Profª. Cibele da Rosa Christ

SMART CONTROLE DO ESTOQUE DE GONDOLA

Em qualquer situação, deve ser incluída toda a informação que seja relevante para a análise e resolução da questão/problema.

DOCUMENTO DE APOIO À UTILIZAÇÃO DE WSDL (Fundos de Compensação do Trabalho)

1 Criando uma conta no EndNote

Cliente UDP. Programação sockets. Agenda. Cliente UDP. Resumo de Chamadas UDP. Chamadas UDP. Resumo de Chamadas UDP.

Agenda. A interface de Agendamento é encontrada no Modulo Salão de Vendas Agendamento Controle de Agendamento, e será apresentada conforme figura 01.

DOCUMENTO DE APOIO À UTILIZAÇÃO DE Web Services (Fundos de Compensação do Trabalho)

Em qualquer caso, deve ser incluída toda a informação que seja relevante para a análise e resolução

MANUAL DOS GESTORES DAA

CAMADA DE TRANSPORTE

SGCT - Sistema de Gerenciamento de Conferências Tecnológicas

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Programação com sockets (em Java)

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior

Tutorial de criação de um blog no Blogger

Sistema OnixNet / TrucksNet Contagem de Estoque pelas oficinas

Permite o acesso remoto a um computador;

Servidor TCP. Programação Sockets. (c) Volnys Bernal. Servidor TCP Resumo das Chamadas TCP. Resumo das Chamadas TCP. Resumo das Chamadas TCP

Projeto: Camada Independente de Dispositivo

Fundamentos de Arquivos. SCC203 Algoritmos e Estruturas de Dados II

Âmbito do Documento. Modelo de Comunicação. Modelo de Comunicação. Prescrição Eletrónica Médica - Aplicação

Manual do DEC Domicílio Eletrônico do Contribuinte

REDES DE COMPUTADORES

14. Arquivos. W. Celes e J. L. Rangel. Estruturas de Dados PUC-Rio 13-1

GT-ATER: Aceleração do Transporte de Dados com o Emprego de Redes de Circuitos Dinâmicos. RT3 - Avaliação dos resultados do protótipo

A nova metodologia de apuração do DI propõe que o cálculo seja baseado em grupos de taxas e volumes, não mais em operações.

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org

Transcrição:

1. Funções de E/S cm Arquiv: Prgramaçã Para estas funções, é necessári incluir a bibliteca: #include <stdi.h> Para manipular um arquiv através das funções, é necessári criar um pnteir de arquiv que é um pnteir para infrmações que definem nme, status e psiçã atual d arquiv, entre utras. O cmand a seguir cria este pnteir: FILE *fp; Seguem as perações mais cmuns cm arquivs. 1.1 Abrir um arquiv: A funçã fpen() abre um arquiv e retrna pnteir de arquiv assciad a ele. Os arguments da funçã sã s seguintes: FILE fpen(cnst char* nmearq, cnst char* md); Nmearq é nme u caminh d arquiv que deve ser frnecid diretamente entre aspas u sb a frma de uma variável string que cntenha. Md determina cm arquiv será abert, segund a tabela a seguir: Md Significad r Abre um arquiv-text para leitura w Cria um arquiv-text para escrita a Anexa a um arquiv-text já existente rb Abre um arquiv binári para leitura wb Cria um arquiv binári para escrita ab Anexa a um arquiv binári já existente r+ Abre um arquiv-text para leitura/escrita w+ Cria um arquiv-text para leitura/escrita a+ Anexa u cria um arquiv-text para leitura/escrita r+b Abre um arquiv binári para leitura/escrita w+b Cria um arquiv binári para leitura/escrita a+b Anexa a um arquiv binári para leitura/escrita Um exempl, incluind um métd para detectar err na abertura é dad: FILE *fp; if ((fp = fpen( test.txt, w )) == NULL){

} printf( arquiv nã pde ser abert\n ); exit(1); 1.2 Fechar um Arquiv: A funçã fclse() fecha um arquiv que fi abert através da funçã fpen(). Ela retrna zer se a peraçã fi bem sucedida e utr valr se crreu algum err. Sua frma é a seguinte: int fclse(file *fp); fp é pnteir de arquiv d arquiv anterirmente abert. 1.3 Ler de um Arquiv: A funçã fread() permite a leitura de blcs de qualquer tip de dads. Ela retrna númer de blcs efetivamente lids. Sua frma é dada: size_t fread(vid *buffer, size_t num_bytes, size_t cunt, FILE *fp); O tip size_t é mesm que unsigned int. O primeir argument é endereç da variável para nde s dads serã lids, num_bytes é númer de bytes a ser lid, cunt é quants blcs de tamanh num_bytes serã lids e fp é pnteir de arquiv relacinad a arquiv a ser lid. Após executada essa funçã, a psiçã d pnt de inserçã é n final d últim blc lid. Ex: fread (&d, sizef(int), 1, fp); 1.4 Escrever em um Arquiv: A funçã fwrite() permite a escrita de blcs de qualquer tip de dads em um arquiv. Ela retrna númer de blcs efetivamente escrits. Seus arguments sã análgs à funçã de leitura: size_t fwrite(vid *buffer, size_t num_bytes, size_t cunt, FILE *fp); A diferença é que, neste cas, primeir argument é endereç da variável nde se encntram s dads a serem escrits. Cm esta funçã, a psiçã d pnt de inserçã também é a d final d últim blc escrit. 1.5 Fim de Arquiv: A funçã fef() permite verificar se fim d arquiv fi atingid. Ela devlve verdadeir, u seja, um valr nã nul, se fim d arquiv fi atingid e, 0 cas cntrári.

int fef(file *fp); 2. Interface Scket: Um scket é uma interface de prgramaçã de aplicaçã (API), que frnece a sintaxe através da qual s serviçs ferecids pr um prtcl pdem ser chamads em um Sistema Operacinal. Na prgramaçã das interfaces scket, mdel utilizad é cliente-servidr. Neste mdel, servidr faz uma abertura passiva, esperand cnexões de um cliente, e cliente faz a abertura ativa da cnexã. A abertura passiva cnsiste na criaçã de um scket e na preparaçã d servidr para uma cnexã, sem efetivamente estabelecê-la. A prta usada pel servidr deve ter um númer cnhecid para que cliente saiba nde tentar a cnexã. As infrmações necessárias sã frnecidas através de uma estrutura de endereçament. Depis de criad scket, ele deve ser assciad a uma prta TCP u UDP, que é feit pela funçã bind(). A partir deste pnt, dependend se é usad TCP u UDP cm prtcl de transprte, a seqüência de funções difere. O UDP, pr ser um prtcl nã-rientad à cnexã, cm própri nme diz, nã estabelece uma cnexã antes de enviar s dads: quand a aplicaçã tem infrmaçã a transmitir, ela simplesmente a envia. Lg, prgrama UDP só fará us das funções recvfrm() e sendt() (que anexa um cabeçalh cntend endereç IP d destin e númer da prta as dads). O TCP é um prtcl rientad à cnexã e precisa de utras funções para estabelecer a mesma. Após scket ter sid assciad a uma prta pela funçã bind(), prcess cntinua da seguinte maneira. Um servidr pde aceitar mais de uma cnexã simultaneamente. Para iss, é necessári que se crie uma fila de cnexões pendentes, nde se define máxim de cnexões ainda nã tratadas pel servidr. A funçã listen() tem este papel. Finalizada essa seqüência, servidr chama a funçã accept(). Ela fica blqueada até que um cliente tente uma cnexã, quand entã um nv scket é criad para atendêla. Cm iss, primeir scket ainda existe e cntinua respnsável pela abertura passiva, send usad em futuras chamadas de accept(). Assim, fi estabelecida uma cnexã full-duplex entre cliente e servidr e a transferência de dads pde cmeçar, utilizand-se as funções send() e recv(). O lad d cliente é ainda mais simples. Também é criad um scket, mas nã é necessári assciá-l a uma prta específica, deixand essa esclha a carg d sistema peracinal. Feit iss, ele chama a funçã cnnect() que pede uma cnexã na prta cnhecida d servidr. Essa funçã inicia a apresentaçã de 3 vias d TCP e só retrna quand a cnexã fr estabelecida u se um err crrer. Terminada a cmunicaçã entre cliente e servidr, s sckets pdem ser fechads. Para usar estas funções, devem ser incluídas as seguintes biblitecas: #include <sys/types.h> #include <sys/scket.h> #include <netinet/in.h> #include <netdb.h>

O mdel acima descrit está representad nas figuras abaix e as funções cm seus arguments e valres de retrn sã apresentads em seguida. OBS: As funções read() e write() sã substituídas pr recv() e send(), respectivamente.

Criaçã d scket Funçã scket() int scket(int family, int type, int prtcl); O primeir argument indica a família de prtcls que será utilizada. Neste cas, a família da Internet usa valr PF_INET. O segund argument define tip de scket a ser criad. O TCP é rientad a cadeias de bytes e prtant seu valr é SOCK_STREAM. O UDP é rientad a datagramas e assim seu valr é SOCK_DGRAM. O últim argument identifica prtcl específic a ser usad. Neste cas será nul, já que s dis primeirs arguments já identificam exclusivamente prtcl. Cas bem sucedida, a funçã retrna um inteir similar a um descritr de arquivs relacinad a scket criad, através d qual ele pde ser referenciad. Cas cntrári, devlve um valr negativ. Assciaçã d scket a uma prta Funçã bind() int bind(int scket, struct sckaddr *address, int addr_len); O primeir argument é scket criad pela funçã scket(). O segund é a estrutura de endereçament que cntém as infrmações necessárias para estabeleciment da cnexã. O últim é tamanh dessa estrutura, pis, dependend da família e d prtcl utilizads, ele varia.

Esta funçã retrna um valr nã nul em cas de sucess. Fila de Cnexões Pendentes Funçã listen() int listen(int scket, int backlg); O últim argument é um inteir que define tamanh da fila. A funçã retrna um valr nã nul em cas de sucess. Estabeleciment da Cnexã Funçã accept() int accept(int scket, struct sckaddr *address, int *addr_len); O segund e terceir arguments sã usads para retrnar a estrutura de endereçament d cliente a qual fi estabelecida uma cnexã, daí ser passad um endereç e nã um valr de variável. A funçã retrna um inteir similar a um descritr de arquiv, que é um clne d scket inicial, referente a esta cnexã recém-criada. Esse nv scket criad pela funçã accept() será fechad quand esta cnexã fr finalizada. Cnexã Funçã cnnect() int cnnect(int scket, struct sckaddr *address, int addr_len); Os arguments sã análgs, prém aqui é valr d tamanh da estrutura de endereçament que é passad à funçã. A funçã retrna um valr nã nul em cas de sucess. Envi de mensagens usand TCP Funçã send() int send(int scket, char *message, int msg_len, int flags); O segund argument é endereç da variável nde se encntra a mensagem que se deseja transmitir pel scket indicad n primeir parâmetr, seguid d tamanh dessa mensagem e de um cnjunt de flags que cntrlam certs detalhes da peraçã mas que pdem receber um valr nul. Recepçã de mensagens usand TCP Funçã recv() int recv(int scket, char *buffer, int buffer_len, int flags); Os arguments sã análgs à funçã send(), send que agra segund argument é endereç da variável nde a mensagem recebida será armazenada.

Envi de mensagens usand UDP Funçã sendt() ssize_t sendt(int scket, char *message, int msg_len, int flags, struct sckaddr *address, int addr_len); Tds s arguments têm s mesms significads anterires e flags cntinua pdend ser nul. A funçã retrna númer de bytes enviads u 1, em cas de err. Recepçã de mensagens usand UDP Funçã recvfrm() ssize_t recvfrm(int scket, char *buffer, int buffer_len, int flags, struct sckaddr *address, int *addr_len); Tds s arguments têm s mesms significads anterires. A funçã retrna, além d datagrama recebid (n segund argument), a estrutura de endereçament da rigem de frma que destin pssa enviar-lhe uma respsta (quint argument) e númer de bytes da área de dads recebids u 1 em cas de err. Fechand scket Funçã clse() int clse(int scket); A funçã retrna um valr nul em cas de sucess. Estrutura de endereçament struct sckaddr_in{ shrt int sin_family; unsigned shrt int sin_prt; struct in_addr sin_addr; unsigned char sin_zer[8]; } O primeir item da estrutura define tip de família d prtcl a ser usad. Deve ser atribuíd valr AF_INET que indica a família de prtcls da Internet. Em seguida, vem númer da prta TCP u UDP usada na cmunicaçã entre s prcesss. Para se atribuir valr a este item, é necessári usar uma funçã que transfrma a representaçã de dads d hst na representaçã de dads da rede. Um exempl seria sin.sin_prt = htns (SERVER_PORT); nde SERVER_PORT é númer da prta a ser utilizada. Fi criada uma representaçã de dads para a rede, prque cada hst armazena s bytes em uma determinada rdem, que pderia gerar cnfusã na interpretaçã ds dads recebids.

O próxim item é endereç IP d hst de destin. Ele pde ser frnecid de maneira direta u pr uma entrada de dads. N cas d servidr, utiliza-se a cnstante INADDR_ANY que, pr nã especificar um endereç IP, permite que servidr aceite cnexões de qualquer hst. Cm esta estrutura de endereçament serve para qualquer tip de prtcl, s endereçs pdem ter tamanhs diferentes dependend da família. Pr iss, sin_zer existe para zerar a parte da estrutura que nã fi usada, já que é alcad espaç para mair tamanh de endereç pssível. 3. Referências: C Cmplet e Ttal Herbert Schildt Makrn Bks 3ª ediçã (referências sbre prgramaçã em C) Cmputer Netwrks A System Apprach Larry Petersn & Bruce Davie Mrgan Kauffman 2ª ediçã (exempl de um prgrama cliente e de um prgrama servidr usand TCP Capítul 1 Pasta 635 na Xerx da Ângela) Unix Netwrk Prgramming Richard Stevens Prentice Hall 2ª ediçã Vlume 1 (referências sbre prgramaçã de interfaces scket)