设计-DelayTimeError': is not a member of 'CGetError

问题描述

DelayTimeError': is not a member of 'CGetError

#include < winsock2.h >
#include < windows.h >
#include < stdio.h >
#include < stdlib.h >
#include < string.h >

#pragma comment( lib, "WS2_32.lib" )
void psTitle( char * );//欢迎界面
void ps1( char *, char * );//默认扫描方式
void ps2( char *, char *, char *, char * );//自定义扫描方式
void GetLocalDate( void );//获得主机信息
DWORD WINAPI psProc(//线程函数
LPVOID lpParameter // thread data
);//全局变量

char g_szTargetIP[20]; //目标地址和目标端口
int g_nTargetPort;
int g_nPorts[23] = {
21,22,23,25,53,79,80,110,111,119,135,139,143,
443,445,512,554,1080,1433,1521,2401,3306,3389
};//默认常用探测端口
int g_nOpenPorts;//端口开放数量

class CGetError{
public:
void PortError( int nStartPort, int nEndPort )
{
if ( nStartPort < 0 || nStartPort > 65535 || nEndPort < 0 || nEndPort > 65535 )
{
printf("错误: 端口输入/n");
exit(1);
}
if ( nStartPort >= nEndPort )
{
printf("错误: 端口输入/n");
exit(1);
}
}
void main(int argc,char *argv[]){
if( argc == 1 )
{
psTitle( argv[0] );
exit( 1 );
}
else if(argc == 3)
{
ps1( argv[1] , argv[2] );
}
else if( argc == 5 )
{
ps2( argv[1], argv[2], argv[3], argv[4] );
}
else
{
printf( "错误: 参数输入/n" );
exit( 1 );
}
}
void psTitle(char *help)//欢迎界面
{
printf("--------------------------------------------------------------------/n");
printf ("Portscan端口扫描器/n");
printf ("------------------------------本机信息------------------------------/n");
GetLocalDate();
printf ("------------------------------功能说明------------------------------/n");
printf ("常用端口扫描:/n");
printf ("/tPortscan <目标IP> [等待时间(毫秒)]/n");
printf ("自定义端口扫描:/n");
printf ("/tPortscan <目标IP> [开始端口] [结束端口] [等待时间(毫秒)]/n");
printf ("举例:/n");
printf ("/tPortscan 127.0.0.1 1/n");
printf ("/tPortscan 127.0.0.1 0 65535 1/n");
}
void ps1( char *target, char *delay )//默认扫描方式
{
CGetError psError;//初始化CGetError
int nDelayTime = atoi( delay );
CInitSock initSock;//初始化Winsock库
HANDLE hThread1;
strcpy( g_szTargetIP , target );
psError.IPError();//输入错误处理
psError.DelayTimeError( nDelayTime );
printf( "目标地址: ");
puts( target );
printf( "目标端口: 默认常用端口" );
printf("/n------------------------------扫描报告------------------------------");
for ( int i = 0; i < 23; i++ )
{
g_nTargetPort = g_nPorts[i];
//NULL 使用缺省的安全性
//0 采用调用线程一样的大小
//psProc 指定线程入口函数的地址
//NULL 传递给线程的一个参数
//0 创建的标记为0 一旦创建立即运行
//NULL 线程的ID 不需要使用
hThread1 = CreateThread( NULL, 0, psProc, NULL, NULL, NULL );
CloseHandle( hThread1 );
Sleep( nDelayTime );
}
printf( "/n/n共扫描到%d个端口开放" , g_nOpenPorts );
printf ("/n--------------------------------------------------------------------/n");
printf( "/n/n端口扫描完毕/n" );
}

void ps2( char *target, char *start, char *end, char *delay )//自定义扫描方式
{
CGetError psError;//初始化CGetError
int nStartPort = atoi( start );
int nEndPort = atoi( end );
int nDelayTime = atol( delay );
CInitSock initSock;//初始化Winsock库
HANDLE hThread2;
strcpy( g_szTargetIP , target );
psError.PortError( nStartPort, nEndPort );//输入错误处理
psError.IPError();
psError.DelayTimeError( nDelayTime );
printf( "目标地址: ");
puts( target );
printf( "目标端口: %d -- %d:", nStartPort, nEndPort );
printf ("/n------------------------------扫描报告------------------------------");
for ( int port = nStartPort; port <= nEndPort; port++ )
{
g_nTargetPort = port;
//NULL 使用缺省的安全性
//0 采用调用线程一样的大小
//psProc 指定线程入口函数的地址
//NULL 传递给线程的一个参数
//0 创建的标记为0 一旦创建立即运行
//NULL 线程的ID 不需要使用
hThread2 = CreateThread( NULL, 0, psProc, NULL, NULL, NULL );
CloseHandle( hThread2 );
Sleep( nDelayTime );
}
printf( "/n/n共扫描到%d个端口开放" , g_nOpenPorts );
printf( "/n/n端口扫描完毕/n" );
}
};

解决方案

缺少函数定义
添加一个

 void DelayTimeError( int nDelayTime )
 {
  if ( nDelayTime < 0 || nDelayTime > 65535 )
  {
   printf("错误: 等待时间输入/n");
   exit(1);
  }
 }

参考:
http://blog.csdn.net/chrython/article/details/1293289

解决方案二:

你要看一下你用到的CFetError的类实现,它是否有DelayTimeError这个成员函数,报错信息提示它没有这个方法,所以你不能调用

时间: 2024-09-20 21:18:26

设计-DelayTimeError&amp;#39;: is not a member of &amp;#39;CGetError的相关文章

信息- VBScript 运行时错误 类型不匹配: &amp;amp;#39;[string: &amp;amp;quot;&amp;amp;quot;]&amp;amp;#39; line 12

问题描述 VBScript 运行时错误 类型不匹配: '[string: ""]' line 12 <%Option Explicit%> <%dim cartstrcartstr = getCartFromCookie()if (cartstr=NULL or cartstr ="""") then response.redirect ""Cart.asp"" response.ende

编程-if(ch!=&amp;amp;#39;32&amp;amp;#39;&amp;amp;amp;&amp;amp;amp;ch!=&amp;amp;#39; &amp;amp;#39;)这个起什么作用,怎么感觉有没有这句都一样

问题描述 if(ch!='32'&&ch!=' ')这个起什么作用,怎么感觉有没有这句都一样 if(ch!=' ')这个起什么作用,我觉得有没有这句输出结果都一样,可书上为什么这样写?还是应该改一改记事本里的内容? 解决方案 大概是因为...或者说就是数据太简单了,没有达到判断的条件.你多试些试试. 解决方案二: TCP/IP 详解 卷1 ch12 Broadcasting and Multicasting 解决方案三: 不同操作系统,它的换行符不一样的 解决方案四: fseet(fp0S

编程-关于 &amp;amp;quot;moveElement(&amp;amp;#39;&amp;amp;quot;+elementID+&amp;amp;quot;&amp;amp;#39;,&amp;amp;quot; 中引号的问题

问题描述 关于 "moveElement('"+elementID+"'," 中引号的问题 这是DOM编程艺术的一个移动元素的例子: 有两个问题: 1.var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")"; 这句话里"moveElement('&quo

解决The type or namespace name \&amp;#39;XXXX\&amp;#39; does not exist in the namespace \&amp;#39;XXXXXXXXX\&amp;#39; 的错误

点击打开链接

Last_IO_Error: error connecting to master &amp;#39;tl@192.168.199.151:3306&amp;#39;

环境: centoos 6.5  主从 mysql 5.6.12 主: 192.168.199.11 从:192.168.199.12 主从切换 把 12 变为主,从为11  结果报错: Last_IO_Error: error connecting to master 'tl@192.168.199.151:3306' 11 从机上看到的: 刚配置的MySQL主从,在从机上看到 点击(此处)折叠或打开 mysql> SHOW slave STATUS \\G *****************

python列表中的字符串长成&amp;amp;#39;&amp;amp;quot;book&amp;amp;quot;&amp;amp;#39;。。。

问题描述 python列表中的字符串长成'"book"'... 列表是 a = ['"book"','"desk"','"pen"']的样子,怎样把每个元素外边的不必要的''除去呢?除了从新敲一遍,谢谢! 解决方案 strip或者字符串截取都可以哦 解决方案二: 直接用编辑器字符串替换掉 解决方案三: python_忽略大小写对字符串列表排序python列表 字符串 转换Python:字符串.列表和元组

Unable to read the project file &amp;#39;client.csproj&amp;#39;. Could not load file or assembly &amp;#39;Microsoft.Build.En

错误详细信息: Unable to read the project file 'client.csproj'. Could not load file or assembly 'Microsoft.Build.Engine, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. 系统找不到指定的文件. 今天打开之前一个vs2005的项目,报出上面的错误,这个啥

webservice-axis2 java调用.net出现Unexpected character &amp;amp;#39;I&amp;amp;#39; (code 73) in prolog; expected &amp;amp;#39;&amp;amp;lt;&amp;amp;#39;

问题描述 axis2 java调用.net出现Unexpected character 'I' (code 73) in prolog; expected '<' 服务端暴露的接口有三个方法,其中一个正常,另外两个调用报以下错误,求人解答 org.apache.axis2.AxisFault: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character 'I' (code 73) in prolog; expected '

sql-DATE_FORMATE(date,&amp;amp;#39;%X年-第%V周&amp;amp;#39;)AS WEEK显示第一周为52周

问题描述 DATE_FORMATE(date,'%X年-第%V周')AS WEEK显示第一周为52周 date的时间为2014-01-01 2014-03-31 为什么第一周会显示成第52周,怎么改成正常的第一周.希望不改变周日为每个星期的第一天的初衷.