用clientsocket->connect扫描多个端口的问题...

talkingmute 2005-04-20 05:50:56
for(int i=StrToInt(Edit2->Text);i<=StrToInt(Edit3->Text);i++)
{
TClientSocket *csocket=new TClientSocket(this);
csocket->Tag = 0;
csocket->OnConnect = ClientSocket1Connect;
csocket->ClientType = ctNonBlocking;
csocket->Address=Edit4->Text;
csocket->Port=i;
csocket->Open();

}
ClientSocket1Connect函数的定义没有问题,可是为什么当一扫描时,就出现假死状况呢??
不知各位,有什么好的扫描方法??
...全文
182 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
铖邑 2005-05-26
  • 打赏
  • 举报
回复
怎么可能用clientsocket来实现端口扫描呢???你想扫描别人,就得快速反应,即使使用API也得等待握手信号,效率太低。最好的扫描方法应该是透过TCP,用原始套接口发送大量的TCP SYN数据报,然后等待回应信息。
talkingmute 2005-05-26
  • 打赏
  • 举报
回复
to: pp616(傻小子)
那请问ClientSocket中能不能设定select模式呢?不用api
pp616 2005-05-24
  • 打赏
  • 举报
回复
用socket api 选select模式。不然扫描速度太慢
netsys2 2005-04-21
  • 打赏
  • 举报
回复
for(int i=StrToInt(Edit2->Text);i<=StrToInt(Edit3->Text);i++)
{
TClientSocket *csocket=new TClientSocket(this);
csocket->Tag = 0;
csocket->OnConnect = ClientSocket1Connect;
csocket->ClientType = ctNonBlocking;
csocket->Address=Edit4->Text;
csocket->Port=i;
csocket->Open();
Sleep(200);//必须有个停顿,因为建立连接需要时间。更好的做法是在
OnConnect中,上个建立连接后再启动下一个。
}
happyct 2005-04-21
  • 打赏
  • 举报
回复
TList *lsSocket;
TClientSocket *csocket;

for(int i=StrToInt(Edit2->Text);i<=StrToInt(Edit3->Text);i++)
{
csocket=new TClientSocket(this);
csocket->Tag = 0;
csocket->OnConnect = ClientSocket1Connect; //这里仔细检测一下。。
csocket->ClientType = ctNonBlocking;
csocket->Address=Edit4->Text;
csocket->Port=i;
csocket->Open();
lsSocket->Items->Add(csocket);
}

俺没法测试,不知道对错
Lonelywolf1899 2005-04-21
  • 打赏
  • 举报
回复
单步执行看一下,估计是传入的参数有问题。

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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