Public feed #727681

Anonymous

public c v1 · immutable
Raw Edit
·published 2007-10-06 08:06 UTC
rendered paste body
#include <stdio.h>#include <errno.h>#include <stdlib.h>#include <sys/types.h>#include <sys/time.h>#include <arpa/inet.h>#include <sys/socket.h>#include <unistd.h>#include <strings.h>int main(void){        int sd1, sd2, err = 0;        char buff1[1024], buff2[1024];        fd_set reading;        FD_ZERO(&reading);        sd1 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);        sd2 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);        struct sockaddr_in server, s2; /* we should receive data from server */        struct timeval the_time;        the_time.tv_sec = 2;        the_time.tv_usec = 0;        bzero(&server, sizeof(server)); bzero(&s2, sizeof(s2));        server.sin_family = AF_INET;        server.sin_port = htons(13);        server.sin_addr.s_addr = inet_addr("216.86.77.194");        s2.sin_family = AF_INET;        s2.sin_port = htons(13);        s2.sin_addr.s_addr=inet_addr("127.0.0.1");        int strsize = sizeof(struct sockaddr);        if(connect(sd1, (struct sockaddr *)&server, strsize)==-1)        {                perror("connect 1\n");                return --err;        }        if(connect(sd2, (struct sockaddr *)&s2, strsize)==-1)        {                perror("connect 2\n");                return --err;        }        FD_SET(sd1, &reading); FD_SET(sd2, &reading);        int greatest = sd2+1;        int shandler = select(greatest, &reading, NULL, NULL, &the_time);        if(shandler == -1)        {                perror("select\n");                return --err;        }        if(shandler == 0)        {                perror("TIMEOUT\n");                return --err;        }        else        {                if(FD_ISSET(sd1, &reading))                {                        printf("Socket 1 READY\n");                        if(recv(sd1, buff1, 1024, 0)==-1) return errno;                        printf("BUFF 1: %s\n", buff1);                        close(sd1);                }                if(FD_ISSET(sd2, &reading))                {                        printf("Socket 2 READY\n");                        if(recv(sd2, buff2, 1024, 0)==-1) return errno;                        printf("BUFF 2: %s\n", buff2);                        close(sd2);                }        }        return 0;}