All pastes #9764 Raw Edit

Unnamed

public c v1 · immutable
#9764 ·published 2005-04-18 17:55 UTC
rendered paste body
#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <netdb.h> void error(char *msg){    perror(msg);    exit(0);}int create_socket(char *host, unsigned int port) {        int sockfd;        struct sockaddr_in server_addr;        struct hostent *server;        sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);        if(sockfd < 0)                error("ERROR opening socket");        server = gethostbyname(host);        if(server == NULL) {                fprintf(stderr, "ERROR, no such host\n");                exit(0);        }        bzero((char *) &server_addr, sizeof(server_addr));        server_addr.sin_family = AF_INET;        bcopy((char *)server->h_addr, (char *)&server_addr.sin_addr.s_addr, server->h_length);        server_addr.sin_port = htons(port);        if (connect(sockfd,(struct sockaddr *)&server_addr,sizeof(server_addr)) < 0)                error("ERROR connecting");                return sockfd;        }struct amrdata {        short type;        short meterid;        int usuage;        int peak;        int timestamp;        short sequence;//      char end;};int write_to_server(int fd) {         short type = 1;        short meterid = 20;        int usuage = 20000;        int peak = 20000;        int timestamp = 2005;        short sequence = 1;        char endline = '\n';                struct amrdata DATA;        DATA.type = type;        DATA.meterid = meterid;        DATA.usuage = usuage;        DATA.peak = peak;        DATA.timestamp = timestamp;        DATA.sequence = sequence;        //DATA.end = endline;                 return write(fd, &DATA, sizeof(DATA));}int main(int argc, char *argv[]) {        int fd;        int nbytes;        char buffer[256];        if(argc < 3) {                fprintf(stderr, "Usage: %s <hostname> <port>\n", argv[0]);                exit(0);        }        fd = create_socket(argv[1], atoi(argv[2]));        nbytes = write_to_server(fd);        printf("Bytes sent: %d\n", nbytes);}