我也很奇怪,已经见过好几次了。
你后面循环那段完全不对,下面是正确代码。
struct sockaddr_in addr;
addr.sin_family =AF_INET;
addr.sin_port = htons(atoi(argv[3]));
unsigned long iSIP = inet_addr(argv[1]);
unsigned long iEIP = inet_addr(argv[2]);
unsigned long s1 = ntohl(iSIP);
unsigned long e1 = ntohl(iEIP);
for(; s1 <= e1; s1++)
{
addr.sin_addr.s_addr = ntohl(s1);
err = connect(s,(struct sockaddr *)&addr, sizeof(addr));
if (err == INVALID_SOCKET)
printf("%s %s Close \n",inet_ntoa(addr.sin_addr), argv[3]);
else
printf("%s %s Open \n",inet_ntoa(addr.sin_addr), argv[3]);
}
for(; iSIP <=iEIP; iSIP++)
{
adr.s_addr = htonl(iSIP); //错误 改为adr(变量),不能以结构体名做变量
if (err == INVALID_SOCKET)
printf("%s %s Close \n",inet_ntoa(adr),argv[3]);
else
printf("%s %s Open \n",inet_ntoa(adr),argv[3]);
}
rcodnhjbdp/.fgkiltyu-p0l