All pastes #826286 Raw Edit

level0

public c v1 · immutable
#826286 ·published 2007-12-21 02:51 UTC
rendered paste body
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <errno.h>#include <string.h>#include <netdb.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#define PORT 5842 // the port client will be connecting to #define MAXDATASIZE 100 // max number of bytes we can get at once int main(int argc, char *argv[]){    int sockfd, numbytes;      char buf[MAXDATASIZE];	//unsigned int buf[MAXDATASIZE];    struct hostent *he;    struct sockaddr_in their_addr; // connector's address information     if (argc != 2) {        fprintf(stderr,"usage: client hostname\n");        exit(1);    }    if ((he=gethostbyname(argv[1])) == NULL) {  // get the host info         herror("gethostbyname");        exit(1);    }    if ((sockfd = socket(PF_INET, SOCK_STREAM, 0)) == -1) {        perror("socket");        exit(1);    }    their_addr.sin_family = AF_INET;    // host byte order     their_addr.sin_port = htons(PORT);  // short, network byte order     their_addr.sin_addr = *((struct in_addr *)he->h_addr);    memset(their_addr.sin_zero, '\0', sizeof their_addr.sin_zero);    if (connect(sockfd, (struct sockaddr *)&their_addr,                                          sizeof their_addr) == -1) {        perror("connect");        exit(1);    }   // if ((numbytes=recv(sockfd, buf, MAXDATASIZE-1, MSG_WAITALL)) == -1) {	unsigned int bufsentlen=0;	  unsigned long bufsent[1];	int  bytes_sent, i;    unsigned int recvint[4];	    if ((numbytes=recv(sockfd, recvint, 4, MSG_WAITALL)) == -1) {        perror("recv");        exit(1);    }		bufsent[0]=0;	for(i=0;i<4;i++){		printf("recvint	: %u\n",recvint[i]);		bufsent[0]+=recvint[i];		printf("bufsent1: %lu\n",bufsent[0]);	}	printf("bufsent: %lu\n",bufsent[0]);	bufsentlen=sizeof bufsent;		printf("buf len: %u\n",bufsentlen); 		//printf("Received: %s\n",buf);	if ((bytes_sent = send(sockfd, bufsent, bufsentlen, MSG_WAITALL)) == -1) {        	perror("send");        	exit(1);    	}	if ((numbytes=recv(sockfd, buf, MAXDATASIZE-1,MSG_WAITALL)) == -1) {        	perror("recv");        	exit(1);    	}			printf("numbytes: %d\n",numbytes);	buf[numbytes] = '\0'; 	printf("Received: %s\n",buf);    printf("\n");    close(sockfd);    return 0;}