All pastes #763946 Raw Edit

Anonymous

public c v1 · immutable
·published 2007-11-06 21:12 UTC
rendered paste body
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/select.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <netinet/sctp.h>#define SIZE 1024char buf[SIZE]#define STDIN 0;char *msg = "hello\n";define ECHO_PORT 420int main(int argc, char *argv[]) {    int sockfd;    int nread, nsent;    int flags, len;    struct sockaddr_in serv_addr;    struct sctp_sndrcvinfo sinfo;    fd_set readfds;    if (argc != 2) {        fprintf(stderr, "usage: %s IPAddr\n", argv[0]);        exit(1);    }    sockfd = socket(AF_INET, SOCK_SEQPACKET, IPPROTO_SCTP);    if (sockfd < 0) {        perror("Socket creation failed");        exit(2);    }    serv_addr.sin_family = AF_INET;    serv_addr.sin_addr.s_addr = inet_addr(argv[1]);    serv_addr.sin_port = htons(ECHO_PORT);    if (connect(sockfd, (struct sockaddr*) & serv_addr, sizeof(serv_addr)) < 0) {        perror("connect to server failed");        exit(3);    }    print("Connected");    while (1) {        FD_CLR(sockfd, &readfds);        FD_SET(sockfd, &readfds);        FD_SET(STDIN, &readfds);        printf("Selecting\n");        select(sockfd+1, &readfds, NULL, NULL, NULL);        if (FD_ISSET(STDIN, &readfds)) {            printf("reading from stdin\n");            nread = read(0, buf, SIZE);            if (nread <= 0)                break;            sendto(sockfd, bug, nread, 0, (struct *sockaddr) &serv_addr, sizeof(serv_addr));        }        else if (FD_ISSET(sockfd, &readfds)) {            printf("reading from socket\n");            len = sizeof(serv_addr);            nread = sctp_recvmsg(sockfd, buf, SIZE, (struct sockaddr*) &serv_addr, &len, &sinfo, &flags);            write(1, buf, nread);        }    }    close(sockfd);    exit(0);}