All pastes #142683 Raw Edit

Unnamed

public c v1 · immutable
#142683 ·published 2006-08-21 16:43 UTC
rendered paste body
#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <string.h>#include <unistd.h>#include <netdb.h>#define PROMPT "-> "unsigned longresolveInput(addr)const char* addr;{        unsigned long ip;        struct hostent * rhost;        ip = inet_addr(addr);        if(ip != INADDR_NONE)        return ip;        rhost = gethostbyname(addr);        if(!rhost)        return (unsigned long)NULL;        memcpy(&ip, rhost->h_addr, sizeof(unsigned long));        return ip;}intmain(argc,argv)int argc;char *argv[];{        int sockfd;        struct sockaddr_in serv_addr;        char buffer[64];        char buf[1024];        if( argc != 3 )        {                printf("Usage : %s ip_addr port\n", argv[0]);                exit(0);        }        printf("Opening socket ...\n");        bzero(&serv_addr, sizeof(serv_addr));        /* initialisation de la structure sockaddr_in */        serv_addr.sin_family            = AF_INET; // IPv4        serv_addr.sin_addr.s_addr       = resolveInput(argv[1]);        serv_addr.sin_port                      = htons(atoi(argv[2]));        /* ouverture socket */                if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)        {                        printf("Socket Error\n");                        exit(0);        }                /* mise en place de la connexion */        printf("Trying to connect on %s ...\n", argv[1]);        if( connect( sockfd,                         (struct sockaddr*)&serv_addr,                         sizeof(serv_addr))                                 < 0)        {                        printf("Connexion Error\n");                        exit(0);        }                printf("Connected, getting info.\n");                while(read(sockfd, buf, sizeof(buf))>=0)        {                printf("%s\n", buf);                printf(PROMPT);                scanf("%s", &(*buffer));                printf("%s\n", buffer);                if (write(sockfd,buffer,strlen(buffer)) != strlen(buffer))                {                     printf("write socket");                     return(-1);                }        }        close(sockfd);        return 0;}