GetLastError 10060 错误。。。SOCKET

肥多罗 2008-10-05 01:11:46
(端口扫描程序)为什么连本机都会出错。。。IP为主机
127.0.0.1 每个端口都出现这个错误
...全文
1963 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
肥多罗 2008-10-05
  • 打赏
  • 举报
回复
。。。。。。我自己研究下。。。。。。。
baihacker 2008-10-05
  • 打赏
  • 举报
回复

int BindResult=bind(Local_Sock,(sockaddr*)&Local_Addr,sizeof(sockaddr)); //绑定
//作为客户端的socket你用得着绑定吗
//其它的地方你对比一下5楼的程序
肥多罗 2008-10-05
  • 打赏
  • 举报
回复
别人扫我有结果。。。别人扫他自己也有。。。我自己扫自己没有。。。别人的系统是XP
自己的扫描是用connect ...现在是网上下载的扫描器也扫不到我的端口
最后一句环境配置不清楚是问你要看的是什么配置。。。。
本人系统XP。。。关了防为墙。。。。也在安全模式下试扫过结果一样是没有
lin_style 2008-10-05
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 wxflul 的回复:]
参数设置还有什么吗?不就初始自己IP。。结束自己IP 自定义商品0 65535 开始扫描 没出现结果。。换别人IP扫描别人有,系统是XP,环境配置不清楚要怎么给你。。。。。?
[/Quote]

自己IP和结束IP是怎么设的。你在扫描的时候可以教你个方法来看是否有在扫描。开启扫描后,打开cmd窗口,
运行netstat -an,看看端口是否有ESTABLISHED的情况。因为被connect....(为什么这个状态自己找下资料)

换别人IP扫描别人有,这句是什么意思,是你扫别人,还是别人扫你?还是别人自己扫他自己?别人的系统是什么?

最后一个问题,你下的扫描器有说是用connect连接扫描的吗?如果不是,是否是用raw?据我所知,xp有个版本好象对raw支持情况有问题。。等等。。。



环境配置不清楚要怎么给你。。。。。?
你说我要怎么回答这句呢?
baihacker 2008-10-05
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 baihacker 的回复:]
引用 17 楼 wxflul 的回复:
参数设置还有什么吗?不就初始自己IP。。结束自己IP 自定义商品0 65535 开始扫描 没出现结果。。换别人IP扫描别人有,系统是XP,环境配置不清楚要怎么给你。。。。。?

利用IP协议,扫描有很多种方式的...
[/Quote]
不只是IP协议...反正你去看文档.
baihacker 2008-10-05
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 wxflul 的回复:]
参数设置还有什么吗?不就初始自己IP。。结束自己IP 自定义商品0 65535 开始扫描 没出现结果。。换别人IP扫描别人有,系统是XP,环境配置不清楚要怎么给你。。。。。?
[/Quote]
利用IP协议,扫描有很多种方式的...
肥多罗 2008-10-05
  • 打赏
  • 举报
回复
我直接测试bind的绑定结果都是成功的,即全部端口都说可以绑定
肥多罗 2008-10-05
  • 打赏
  • 举报
回复
参数设置还有什么吗?不就初始自己IP。。结束自己IP 自定义商品0 65535 开始扫描 没出现结果。。换别人IP扫描别人有,系统是XP,环境配置不清楚要怎么给你。。。。。?
lin_style 2008-10-05
  • 打赏
  • 举报
回复
我对这帖真热心。。。。
lin_style 2008-10-05
  • 打赏
  • 举报
回复
再来看下

我上面说得半对半错

首先timeout的解释,应该是指这个连接在整个连接的过程中没有及时得到对方的响应。可能是对方太忙,也有可能是对方没开响应的端口。 不过在linux下,没开响应的端口返回的是REFUSED.windows下不知道,哪位大大尝试下。

解释完timeout,再来看端口扫描的原理,因为楼主是connect,就针对connect讲。connect是建立在一个完整的
应用程序上,通过一个尝试性的连接,然后检测该套接字是否可读/写,来达到对端口检测的目的。所以在写法上
不应该去判断一个connect的返回值,而应该是像我上面所说,直接select。更标准的做法是,将套接字设置为非阻塞,配合select,速度更快。


再回顾楼主的问题,首先用127.0.0.1地址尝试失败,但是程序未必对,接着用端口扫描器ssport。这里还请楼主列出详细的参数设置步骤,以及您的系统配置环境, 以便进一步帮你分析解决。
肥多罗 2008-10-05
  • 打赏
  • 举报
回复
有什么设置可以列下吗?在别的机器扫我的可以扫出来的啊
baihacker 2008-10-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 wxflul 的回复:]
刚去网上下了个端口扫描器ssport,扫描自己电脑的端口0-65535,结果是一个端口都没开啊。。为什么?在别的机器扫描我的IP就有一些端口开的?
[/Quote]
反正就是和系统有关的一系列设置.
肥多罗 2008-10-05
  • 打赏
  • 举报
回复
刚去网上下了个端口扫描器ssport,扫描自己电脑的端口0-65535,结果是一个端口都没开啊。。为什么?在别的机器扫描我的IP就有一些端口开的?
lin_style 2008-10-05
  • 打赏
  • 举报
回复
端口扫描不是这么写的

A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

译为连接方或者被连接方无反应,超时断开。这个是正常现象。。
就比如你连21端口。connect上后,对方等待你发信息给他,超出某个时间自然就认为无效的超时。

正解应该是

bind(Local_Sock,(sockaddr*)&Local_Addr,sizeof(sockaddr)); //绑定
//这里赶紧select之,查看是否可用,如果可用表示端口为开,否则关之
select();
baihacker 2008-10-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wxflul 的回复:]
我开了个FTP。。。端口21.。。也连不上?
[/Quote]
用telnet能连上不?
肥多罗 2008-10-05
  • 打赏
  • 举报
回复
我开了个FTP。。。端口21.。。也连不上?
baihacker 2008-10-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wxflul 的回复:]
6楼。。。。。。什么端口没开?80端口呢?我用netstat查看开着的端口。。。连接也不行啊。。
[/Quote]
要看你的机器上跑了哪些服务啊...
一个www服务器一般会开80

就像去拜访人家,别人的门关着,你怎么进得去?
你要看你的电脑开了哪些"门"
肥多罗 2008-10-05
  • 打赏
  • 举报
回复
6楼。。。。。。什么端口没开?80端口呢?我用netstat查看开着的端口。。。连接也不行啊。。
baihacker 2008-10-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wxflul 的回复:]
关了防火墙也没用啊。。。。
代码。。
void CScanDlg::InitSocket(void)
{
//初始化socket
Local_Sock = socket(AF_INET,SOCK_STREAM,IPPROTO_IP); //本地socket
if(Local_Sock == INVALID_SOCKET)
{
//错误处理
MessageBox("create socket error");
}

//--------------------------绑定本地IP-------------------------------------------
Local_Addr.sin_family = AF_INET; //网络地址类型,必须设定…
[/Quote]
额,端口没有打开,你连接个什么?
baihacker 2008-10-05
  • 打赏
  • 举报
回复

//下面是来自黑客编程精讲的代码

#include<winsock2.h>
#include<stdio.h>
#include <time.h>//计时需要用到的头文件
#pragma comment(lib,"ws2_32.lib")

#include <time.h>//计时需要用到的头文件
clock_t start,end;//程序运行的起始和结束时间
float costtime;//程序耗时
void usage(void)
{
printf("\tusage: tcpscan RemoteIP StartPort-EndPort\n");
printf("\tExample: tcpscan 192.168.1.1 80-100\n");
}

int main(int argc,char **argv)
{
char *host;
int startport,endport;
char *p;
if(argc!=3)
{
usage();
return 0;
}

p=argv[2];//处理端口参数
if(strstr(argv[2],"-"))
{ startport=atoi(argv[2]);
for(;*p;)
if(*(p++)=='-')break;
endport=atoi(p);

if(startport<1 || endport>65535)
{ printf("Port Error!\n");
return 0;
}

}


host=argv[1];

WSADATA ws;
SOCKET s;
struct sockaddr_in addr;
int result;
long lresult;

lresult=WSAStartup(MAKEWORD(1,1), &ws);

addr.sin_family =AF_INET;
addr.sin_addr.s_addr =inet_addr(host);

start=clock();//开始计时

for (int i=startport;i<endport;i++)
{
s=socket(AF_INET, SOCK_STREAM, 0);
addr.sin_port = htons(i);
if(s==INVALID_SOCKET)break;
result=connect(s, (struct sockaddr*)&addr,sizeof(addr));
if(result==0)
{
printf("%s %d\n",host,i);
closesocket(s);

}

}
end=clock();//计时结束
costtime= (float)(end - start) / CLOCKS_PER_SEC; //转换时间格式
printf("Cost time:%f second",costtime);//显示耗时
WSACleanup();

}
加载更多回复(4)

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧