优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

.NET508 基于C#端口扫描器的实现MFC+VC++

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:

 2.访问一些单位或团体内部资源,如某大学FTP(前提是该代理地址在该资源 的允许访问范围之内),使用教育网内地址段免费代理服务器,就可以用于对教育 网开放的各类FTP下载上传,以及各类资料查询共享等服务。
  3.突破中国电信的IP封锁:中国电信用户有很多网站是被限制访问的,这种限制是人为的,不同Serve对地址的封锁是不同的。所以不能访问时可以换一个国外的代理服务器试试。
  4.提高访问速度:通常代理服务器都设置一个较大的硬盘缓冲区,当有外界 的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。
  5.隐藏真实IP:上网者也可以通过这种方法隐藏自己的IP,免受攻击。
1.2 本课题研究的意义
在当前情况下,由于内网和网络或者是两个不同网络之间互访都有很大的速度瓶颈,就像校园网去访问电信网就慢的出奇,在这种情况下很多人都会采用代理上网以期得到可观的速度。本课题就是针对这种情况,设计与实现一个代理服务器测试程序,SuperProxy(极速代理)是在Visual C++ 6.0平台上开发的一个基于对话框的MFC应用程序,此程序能够在短时间内验证特定格式的一批代理,并将他们按照速度快慢的顺序排列。使得用者能很方便的选择快速可 内容来自think58 [版权所有:http://think58.com]
〖本文来自:计算机毕业网  〗
I,因此用它们开发出来的应用程序都能工作在WinOS的消息机制和绘图里,遵守WinOS作为一个操作系统的内部实现,这其实也是一种必要,微软如果不提供API,这个世上对Win编程的工作就不会存在,微软的产品就会迅速从时尚变成垃圾,上面说到MFC是微软对API函数的专用C++封装,这种结合一方面让用户使用微软的专业C++ SDK来进行Win下应用程序的开发变得容易,因为MFC是对API的封装。微软做了大量的工作,隐藏了好多内节程序开发人员在Win下用C++ & MFC编制软件时的大量内节,如应用程序实现消息的处理,设备环境绘图,这种结合是以方便为目的的,必定要付出一定代价(这是微软的一向作风)。因此就造成了MFC对类封装中的一定程度的的冗余和迂回,但这是可以接受的。 think58.com [资料来源:www.THINK58.com]

对于部分1,主要是显示代理列表,右键出现上下文菜单,菜单中包括对代理列表的一些相关操作,如复制代理,删除代理,选定为IE代理等。对于复制代理来说,需要用到剪贴板的相关操作,而把选定的特定代理设为IE则会通过修改注册表中对应的相关键值(“ProxyEnable”,”ProxyServer”)来完成。
对于部分2,需要完成的功能从实质上是和1)相同,上下文菜单中同样会包括一些诸如添加资源,删除资源等的选项。
对于部分3,这是整个系统的主要部分,也是系统的主要编码部分,在这里将要完成对这些功能实现的一些总体考虑,这在以后的实际编码过程中有着至关重要的作用,下面就是一些我们需要在编码之前做的一些工作:
1) 针对代理列表的导入和导出,需要定义代理的数据结构,已经存储代理的文件格式。在系统里将会用可编辑的.txt文件来保存代理,对于单个代理来说在.txt文件中独行存储且具有特定的格式:
代理地址:端口号@HTTP#描述(一般是代理的归属地)
168.143.113.12:80#US
62.190.127.113:3128#Great Britain (UK)
210.177.254.13:3128#HK

think58

[资料来源:THINK58.com]

[资料来源:www.THINK58.com]

 CString sLine,sFileName;
 sFileName = "wresourse.txt";
 //LPCTSTR lpszFile = (LPCTSTR)sFileName;
 CString sName, sAddress, sDescription;
 INT nFind;
 if(!file.Open(sFileName, CFile::modeRead))
 {
        m_listProxyWeb.InsertItem(0,"代理中国");
     m_listProxyWeb.SetItemText(0,1,"http://www.proxycn.com/");
        m_listProxyWeb.SetItemText(0,2,"代理中国(ProxyCN.COM)");
  return FALSE;
 }
 else
 {  
    while(file.ReadString(sLine))
  {
      //寻找资源的描述信息
         nFind = sLine.Find(_T("_"));
          if(nFind >= 0)
   { 
          sDescription = sLine.Right(sLine.GetLength() - nFind - 1); think58.com

[资料来源:www.THINK58.com]


          sLine = sLine.Left(nFind);
   }
            // 寻找资源的地址信息
         nFind = sLine.Find(_T("-"));
         if(nFind >= 0)
   {
          sAddress = sLine.Right(sLine.GetLength() - nFind - 1);
           sName = sLine.Left(nFind);
   }
   m_listProxyWeb.InsertItem(0,sName);
         m_listProxyWeb.SetItemText(0,1,sAddress);
            m_listProxyWeb.SetItemText(0,2,sDescription);  
 〖本文来自:计算机毕业网  〗 } copyright think58

[资料来源:THINK58.com]

    return;
   }
 }
    // // 设置每个验证线程的参数
 CString sProxy;
 CString sDestURL, sVerifyString;
    for(i=0; i<nRunCount; i++)
 {
  do
  {
   sProxy = GetProxyItem(m_nNextVerifyItem, FALSE);
   g_apThread[m_nThreadRunning]->SetNotifyParent(GetSafeHwnd(),
    MY_WM_VERIFY_NOTIFY,
    MY_WM_VERIFY_FINISHED,
    i, m_nNextVerifyItem);
   m_nNextVerifyItem ++;
            if(g_apThread[i]->SetProxy(sProxy))
   {
        sDestURL="www.yahoo.com";
     sVerifyString="My Yahoo!";
   }
   if(g_apThread[i]->CreateThread())
   { 
    m_listProxy.SetItemText(m_nNextVerifyItem-1, think58.com

[资料来源:www.THINK58.com]


      LIST_VERIFY_COLUMN, "验证中...");
    SetTimer(VERIFY_TIMER_ID_START + i,
      THREAD_TIME_OUT, NULL);
    m_nThreadRunning ++;
    break;
   }
   
  }while(m_nNextVerifyItem < nItemCount);
 }
4. 通过发线程消息的方式开启所有线程。 

[资料来源:www.THINK58.com]