All pastes #826134 Raw Edit

level0

public text v1 · immutable
#826134 ·published 2007-12-21 00:45 UTC
rendered paste body
/*
** client.c -- a stream socket client demo
*/

#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 bufui[MAXDATASIZE], bufsentlen=0;
	int  bytes_sent, i, bufsent=0;

    int recvint[16];	

    if ((numbytes=recv(sockfd, &recvint, 16, MSG_WAITALL)) == -1) {
        perror("recv");
        exit(1);
    }

	for(i=0;i<4;i++){
		printf("recvint	: %u\n",recvint[i]);	
	}
	//printf("bufsent: %d\n",bufsent);

/*

	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;
}