#include #include #include #include #include #include #include #include #include #define BS 4096*3 main(int argc, char ** argv) { int s, n, ns, cond, len, rc, val; short port = 6767; struct sockaddr_in mysock; char buffer[BS]; char addr[16], * host; time_t t; struct hostent * he; s = socket(PF_INET, SOCK_DGRAM, 0); if (argc >= 2) { host = argv[1]; } else { printf ("error\n"); }; if (argc >= 3) { port = atoi(argv[2]); }; mysock.sin_family = AF_INET; mysock.sin_port = htons(port); he = gethostbyname(host); if (he == NULL) exit(9); printf ("host %s : %s, %d %#x \n", host, he->h_name, he->h_addrtype, he->h_addr_list[0]); memcpy(&mysock.sin_addr.s_addr, he->h_addr_list[0], he->h_length); printf("\n"); time(&t); rc = sprintf(buffer, "%d : %s : hei hei", getpid(), ctime(&t)); len = sizeof(struct sockaddr_in); inet_ntop(AF_INET, &mysock.sin_addr.s_addr, addr, 16); printf("sento: %s:%d =\"%s\"\n", addr, ntohs(mysock.sin_port), buffer); rc = sendto(s, buffer, rc, 0, (struct sockaddr*) &mysock, len); }; /* * Local variables: * compile-command: "gcc -g -o client client.c" * End: */