Changes in uspace/app/nettest3/nettest3.c [26de91a:9d58539] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/nettest3/nettest3.c
r26de91a r9d58539 37 37 #include <async.h> 38 38 #include <stdio.h> 39 #include <stdlib.h>40 39 #include <str.h> 41 40 42 #include <inet/dnsr.h>43 41 #include <net/in.h> 44 42 #include <net/in6.h> … … 53 51 static char buf[BUF_SIZE]; 54 52 55 static struct sockaddr *address; 56 static socklen_t addrlen; 53 static struct sockaddr_in addr; 57 54 58 55 static uint16_t port; … … 63 60 int fd; 64 61 char *endptr; 65 dnsr_hostinfo_t *hinfo;66 inet_addr_t addr;67 char *addr_s;68 62 69 63 port = 7; 70 64 71 data = (char *) 65 data = (char *)"Hello World!"; 72 66 size = str_size(data); 73 67 74 68 /* Connect to local IP address by default */ 75 inet_addr(&addr, 127, 0, 0, 1); 69 addr.sin_family = AF_INET; 70 addr.sin_port = htons(port); 71 addr.sin_addr.s_addr = htonl(0x7f000001); 76 72 77 73 if (argc >= 2) { 78 74 printf("parsing address '%s'\n", argv[1]); 79 rc = inet_ addr_parse(argv[1], &addr);75 rc = inet_pton(AF_INET, argv[1], (uint8_t *)&addr.sin_addr.s_addr); 80 76 if (rc != EOK) { 81 /* Try interpreting as a host name */ 82 rc = dnsr_name2host(argv[1], &hinfo, ip_v4); 83 if (rc != EOK) { 84 printf("Error resolving host '%s'.\n", argv[1]); 85 return rc; 86 } 87 88 addr = hinfo->addr; 77 fprintf(stderr, "Error parsing address\n"); 78 return 1; 89 79 } 90 rc = inet_addr_format(&addr, &addr_s); 91 if (rc != EOK) { 92 assert(rc == ENOMEM); 93 printf("Out of memory.\n"); 94 return rc; 95 } 96 printf("result: rc=%d, ver=%d, addr=%s\n", rc, 97 addr.version, addr_s); 98 free(addr_s); 80 printf("result: rc=%d, family=%d, addr=%x\n", rc, 81 addr.sin_family, addr.sin_addr.s_addr); 99 82 } 100 83 101 84 if (argc >= 3) { 102 85 printf("parsing port '%s'\n", argv[2]); 103 port = htons(strtoul(argv[2], &endptr, 10));86 addr.sin_port = htons(strtoul(argv[2], &endptr, 10)); 104 87 if (*endptr != '\0') { 105 88 fprintf(stderr, "Error parsing port\n"); … … 108 91 } 109 92 110 rc = inet_addr_sockaddr(&hinfo->addr, port, &address, &addrlen);111 if (rc != EOK) {112 printf("Out of memory.\n");113 return rc;114 }115 116 93 printf("socket()\n"); 117 fd = socket( address->sa_family, SOCK_STREAM, IPPROTO_TCP);94 fd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); 118 95 printf(" -> %d\n", fd); 119 96 if (fd < 0) … … 121 98 122 99 printf("connect()\n"); 123 rc = connect(fd, address, addrlen);100 rc = connect(fd, (struct sockaddr *)&addr, sizeof(addr)); 124 101 printf(" -> %d\n", rc); 125 102 if (rc != 0) … … 138 115 } while (rc > 0); 139 116 140 async_usleep(1000 *1000);117 async_usleep(1000*1000); 141 118 142 119 printf("closesocket()\n"); … … 144 121 printf(" -> %d\n", rc); 145 122 146 free(address);147 148 123 return 0; 149 124 } 150 125 126 151 127 /** @} 152 128 */
Note:
See TracChangeset
for help on using the changeset viewer.