#include #include #include #include #include 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 \n", argv[0]); exit(0); } fd = create_socket(argv[1], atoi(argv[2])); nbytes = write_to_server(fd); printf("Bytes sent: %d\n", nbytes); }