Sockets usando #include

1. Sockets usando #include

Diego Mariz
mariz

(usa Ubuntu)

Enviado em 28/11/2008 - 11:21h

Meu nome é Diego e Curso Sistemas de Informação e gostaria de me especializar na área de redes, principalmente segurança de dados, computacional. Ha uma um mês eu comprei o Livro - Programação de Rede UNIX – API para sockets de Redes de W. Richard Stevens - Bill Fenner - Andrew M. Rudoff que estou aprendendo muito e essa livro usa muito o #include “unp.h” que não consigo testar os códigos do livro ou mesmo poder fazer os meus. Sou iniciante linux e não sei que compilador usar já tentei vários como um amigo meu que usa linux a mais tempo e não conseguimos mesmo tentando no ubunto, mandriva, kubunto, e ate mesmo o saco do Windows só dando um monte de erro como se nao reconhecesse essa biblioteca "unp.h". Se alguém programa em C e ate mesmo conhece sockets e puder ajudar me esclarecendo o que preciso pra compilar e executar os códigos com essa biblioteca. Vou ficar no aguardo, e assim mesmo eu agradeço desde já a todos. Obr.


  


2. Re: Sockets usando #include

Marcelo A. B. Slomp
mslomp

(usa Slackware)

Enviado em 28/11/2008 - 12:51h

essa unp.h é uma header específica elaborada pelos autores do livro. dessa forma, não é nativa do sistema. pelo que entendi, ela provavelmente implementa toda a parte de sockets necessária para os exemplos e exercícios do livro.
sendo assim, você deve copiá-la para o sistema antes de utilizá-la, caso tenha vindo algum cd/disquete com o livro. caso contrário, o código fonte deve estar impresso no próprio livro, e aí não resta outra forma senão reescrevê-la "no braço".
como estou supondo que seja apenas a header, e que não haja alguma biblioteca adicional, apenas copie-a para algum diretório padrão de headers, como /usr/include, e então não precisará se preocupar em passar o caminho no #include, ou ainda para cada exercício, copie-a para o diretório dos seus fontes. essa última solução é a melhor para esse caso, para não poluir o diretório de headers com cabeçalhos alienígenas.

sugiro também que, após pegar o esquema, fuja dessa unp.h e utilize as headers padrão para manipulação de sockets.
um bom tutorial você encontra em:
http://beej.us/guide/bgnet

quanto ao compilador, há diversos a escolher, fica a seu critério. porém, os mais usuais em sistemas GNU/Linux são os da série GCC. isso facilitará as coisas caso necessite de algum suporte, justamente por haver mais usuários, e então suas chances de resposta positiva em caso de dúvida são maiores.


3. Re: Sockets usando #include

Diego Mariz
mariz

(usa Ubuntu)

Enviado em 29/11/2008 - 09:32h

Grande, realmente como vc falou o autor disponibilizou um link onde estão todos os códigos citados no livro e também tem várias bibliotecas assim como a própria unp.h. Eu ate tentei colocar essa biblioteca na pasta onde fica as bibliotecas no ubunto so que mesmo assim dava erro e o compilador que uso também é o gcc. Um amigo meu me falou que o ubunto é pra usuário e não programadores e ele disse que usasse o Slackware q so era preciso fazer umas atualizações que dava certo. Vou pegar amanha o dvd com ele e instalar. Sou iniciante ao mundo Linux e tenho muitas como essa.

Muito obrigado por toda a ajuda e agradeço também pelo link do tutorial que me enviou. Já vi muitos citarem embora não bom como o que vc me mandou. Obrigado mesmo, vou seguir seu conselho. Valeuuu.



4. tente

robson torraca
robsontorraca

(usa Debian)

Enviado em 14/10/2010 - 15:50h

# Em intro/unp.h,

#ifndef __LINUX__
/* The structure returned by recvfrom_flags() */
// struct in_pktinfo {
// struct in_addr ipi_addr; /* dst IPv4 address */
// int ipi_ifindex;/* received interface index */
//};
#endif /* __LINUX__ */

# Em intro/Makefile, remova a linha indicada

PROGS = daytimetcpcli daytimetcpcli1 daytimetcpcli2 daytimetcpcli3 \
daytimetcpsrv daytimetcpsrv1 daytimetcpsrv2 daytimetcpsrv3 \
ESTA --> daytimetcpcliv6 daytimetcpsrvv6 \
byteorder

# Para compilar digite:

$ CFLAGS="-g -O2 -D__LINUX__" ./configure
$ cd lib ; make
$ cd ../libfree ; make
$ cd ../intro ; make
$ ls -la

Veja que foram compilados todos os fontes. Agora é só testar!







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts