2 #include <sys/socket.h>
3 #include <netinet/in.h>
15 * Pings the server at argv1: argv2
16 * gets a response and prints it
19 int main(int argc, char* argv[]) {
20 struct sockaddr_in server;
21 char buf[BUF_SIZE] = "hello world";
22 char recv_buf[BUF_SIZE];
26 printf("udp_test hostname portnum\n");
29 // ignore the host for now
30 //host = gethostbyname(argv[1]); //hostname
31 bzero(&server, sizeof(server));
32 server.sin_family = AF_INET;
33 server.sin_port = htons(atoi(argv[2]));
34 server.sin_addr.s_addr = inet_addr("10.0.0.1"); //hardcoded server
36 //memcpy(&server.sin_addr.s_addr, host->h_addr, host->h_length);
38 char* printbuf = (char*)&server.sin_addr.s_addr;
39 int size = sizeof(server.sin_addr.s_addr);
41 for (i=0; i<size;i++) {
42 printf("%x", ((char*)printbuf)[i]);
45 //server.sin_addr = *((struct in_addr *)host->h_addr);
46 sockfd = socket(AF_INET, SOCK_DGRAM, 0);
48 printf("socket error\n");
52 printf ("udp_test: sockfd %d \n", sockfd);
53 int socklen = sizeof(server);
55 int sendsize = sendto(sockfd, buf, strlen(buf), 0, (struct sockaddr*) &server, socklen);
56 printf("sendto returns %d, errno %d\n", sendsize, errno);
57 //assume BUF_SIZE is larger than the packet.. so we will get to see what actually comes back..
58 if ((n = recvfrom(sockfd, recv_buf, BUF_SIZE, 0, (struct sockaddr*) &server, &socklen)< 0)){
59 printf("recv failed\n");
62 buf[n-2] = 0; //null terminate
64 printf("recv from result %s\n", buf);