一、修改方法
-
在建立tcp链接之前,先使用
gethostbyname
进行域名解析 -
注意一下:
gethostbyname
对于IP地址,也会会正常返回的,所以只要是域名或者IP对,是都会成功的memset(&servaddr, 0, sizeof(struct sockaddr_in)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = inet_addr(dst); servaddr.sin_port = htons(port); ///>兼容ip和域名 struct hostent *hptr; if((hptr = gethostbyname(dst)) == NULL) { printf(" gethostbyname error for host:%s\n", dst); } else { char str[32]; printf(" first address: %s\n", inet_ntop(hptr->h_addrtype, hptr->h_addr, str, sizeof(str))); servaddr.sin_addr.s_addr = inet_addr(str); } struct sockaddr_in src; memset(&src,0,sizeof(struct sockaddr_in)); src.sin_addr.s_addr = srcip; src.sin_family = AF_INET; src.sin_port=htons(10000); if(connect(tcp_fd, (struct sockaddr *)&servaddr, sizeof(struct sockaddr_in)) == 0) { return tcp_fd; }