All pastes #535928 Raw Edit

Someone

public c v1 · immutable
·published 2007-06-04 06:56 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#define MAXDATASIZE 16int main(int argc, char *argv[]){    int sockfd, numbytes;      char buf[200];    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(struct sockaddr)) == -1) {        perror("connect");        exit(1);    }		unsigned int value[4];	int i;	unsigned long long result = 0;		for(i = 0; i<4; i++) {		if ((numbytes=recv(sockfd, buf, 4, 0)) != -1) {			value[i] = ntohl((unsigned int) *buf);			result += (unsigned int) value[i];			printf("Value %d: %u\n", i, value[i]);		}	}		char result2[8];		result2[0] = *((&result)+7);	result2[1] = *((&result)+6);	result2[2] = *((&result)+5);	result2[3] = *((&result)+4);	result2[4] = *((&result)+3);	result2[5] = *((&result)+2);	result2[6] = *((&result)+1);	result2[7] = *((&result)+0);	        printf("Total: %llu\n", result);			if ((numbytes=send(sockfd, result2, 8, 0)) == 8) {			printf("\nSent reply... lets get response\n");			for(i = 0;i<200;i++) {				if(recv(sockfd, buf, 1, 0) == 1) {				printf("%c", buf[0]);			}		}	}	    	    close(sockfd);    return 0;}