Posso nao ser ninguem ae, mas aqui eu sou o root...Frase do BFMano um irmaozin muito gente boa ;) Teste.cSalve no mesmo diretorio que o simple_sock.h e compile com:gcc -o teste teste.c -I.-----------------------------------------#include "stdio.h"#include "simple_sock.h"int main(int argc,char *argv[]) { int server; int len; int total_len=0; int port; char buff[100]; if(argc < 2) { printf("%s server port\n", argv[0]); exit(1); } port = atoi(argv[2]); server = GetConn(argv[1], port); printf("Connected to %s!\n", argv[1]); while((len = GetDataT(server, buff, 99, 5)) > 1) { buff[len] = '\0'; printf("%d %s", len, buff); total_len += len; } printf("Foram recebidos %d bytes\n", total_len); CloseConn(server); return 0; } #include "stdio.h"#include "stdlib.h"#include "unistd.h"#include "netdb.h"#include "arpa/inet.h"#include "netinet/ip.h"#include "netinet/tcp.h"#include "netinet/in.h"#include "sys/socket.h"#include "sys/types.h"#include "sys/select.h"#include "sys/time.h"#define TCPHDRSZ sizeof(struct tcphdr)#define IPHDRSZ sizeof(struct iphdr)#define LOCALHOST 127.0.0.1struct card { char *saddr; char *daddr; char *data; int sport; int dport; };// N necessita de nenhum argumento gera um socket af_inet, stream, ip.int GenStreamSocket();// Requer uma o ponteiro para uma struct card previamente preenchida.char *GenSynPacket(struct card *c);// N necessita de nenhum argumento gera um socket af_inet, raw, ip.int GenRawSocket();// Requer um socket previamente conectado, um ponteiro para o buffer a ser enviado, e o tamanho do buffer.int SendAll(int socketfd, char *buffer, int tamanho);// Requer um socket previamente conectado, um ponteiro para o buffer a recebido, e o tamanho m\uffffximo da recep\uffff\uffffoint Recv(int socketfd, char *buffer, int tamanho);// Requer a familia do socket, tipo do socket, e dominio(ip, :P)int Socket(int family, int type);// Conecta um socket necessitando de uma estrutura sockaddr_inint Connect(int sockfd, struct sockaddr_in server, size_t tamanho);// Bind() um socket necessitando de uma estrutura sockaddr_inint Bind(int sockfd, struct sockaddr_in server);// Listen() a socket with a backlogint Listen(int sock, int backlog);//Executa perror() depois saivoid Die(char *msg);// Executa herror() depois saivoid Dieh(char *msg);// Resolve um determinado nome e retorna uma estrutura in_addrstruct in_addr GetSinAddr(char *name);// Utilizando read(), le do socket "size" dados e retorna o numero de bytes lidosint GetData(int sock, char *buff, int size);//Utilizando select(), espera at'e que dados estejam disponiveis em sock, entao le com read data, senao retorna -1int GetDataT(int sock, char *buff, int size, int timeout);// Utilizando write(), escreve em socket "size" dados e retorna o numero de bytes escritosint PutData(int sock, char *buff, int size);// connect to a server using a tcp sockstream connection, *name = server, port = port we want to connectint GetConn(char *name, int port);unsigned short in_cksum(unsigned short *addr, int len) { register int sum = 0; u_short answer = 0; register u_short *w = addr; register int nleft = len; while (nleft > 1) { sum += *w++; nleft -= 2; } if (nleft == 1) { *(u_char *) (&answer) = *(u_char *) w; sum += answer; } sum = (sum >> 16) + (sum & 0xffff); sum += (sum >> 16); answer = ~sum; return (answer); }void Die(char *msg) { perror(msg); exit(1); }void Dieh(char *msg) { herror(msg); exit(1); }// No need of any arguments, generates a pure Stream Socket for ip networksint GenStreamSocket() { int sock; sock = Socket(AF_INET, SOCK_STREAM); if(sock < 0) Die("Socket"); return sock; }// Incluir a op\uffff\uffffo de campo data.char *GenSynPacket(struct card *c) { char *packet; struct tcphdr *tcp; struct