SearchTool项目
文章平均质量分 66
ensungm
这个作者很懒,什么都没留下…
展开
-
090805项目进展2
多线程的内容不少,看起来费劲,主要看几个用得到的, 1,tools在搜索的时候,如果点击窗口,无法响应,甚至会死掉,现在明白这就是一个需要多线程的场景,在当前没有多线程的情况下,鼠标消息没有响应的机会,导致等待甚至挂死。 2,线程的理解,比较浅,先凑合用,实际用用就丰富了:“系统准备一个进程环境可能需要好几M的空间,线程是一个物美价廉的选择,在一个Windows上拥有500个线原创 2009-08-05 21:55:00 · 348 阅读 · 0 评论 -
090805项目进展
关于项目的资源管理,小小要求: 1,每天保证半小时投入;2,每天进行进展记录。 其他都不做要求,查了资料进行了努力没有结果都没什么问题。 今天的进展:1,感谢intelligentFTP的老兄,有这样一个实际的蓝本学起来就比较快了,这位老兄太踏实,也没留个名,谢过了;2,在内网安装好msdn,感谢润润;3,项目管理的文件结构完成,有效管理文件和资源;原创 2009-08-05 19:54:00 · 319 阅读 · 0 评论 -
090809项目进展
今天尽量完成:一,公网socket时,CheckServerStatus的返回值总是TRUE,换成pSession->GetFtpConnection检测看看;BOOL CheckServerStatus(CString &strIPAddr, UINT uiPort){// SOCKET cmdSocket;// struct sockaddr_in hostaddr;原创 2009-08-09 09:48:00 · 337 阅读 · 0 评论 -
090806项目进展
完成:1,检测host是否开启FTPServer;坚持FTP是否在开启状态,就是简单一个CSocket类,connect(srvIp, 21),这是个异步的调用,本身不用做多线程处理。2,对ICMP发包进行多线程改造,代码完成,调试还有些问题,明天仔细分解。 总结:1,MFC是有含量的,做成这样一个类库是不容易的,我现在的水平是没有资格对它说三道四的,愧疚以前的看法。MFC原创 2009-08-06 21:19:00 · 356 阅读 · 0 评论 -
090807项目进展
10.44.112.180 - 10.44.112.222 1,昨天的线程搞在for循环的里面,但是入参却只有一个,显然是太离谱了; 2,第一步的多线程只是想达到主窗口能接受鼠标消息,所以只需要一个worker线程即可,把OnDirectButton的处理内容全部搬到ThreadFunc中来,入参是两个ip输入框,出参是 ListBox,所有online的主机都写入到List原创 2009-08-07 19:02:00 · 302 阅读 · 0 评论 -
090808项目进展
目标:对单个FTP服务器的文件目录进行6层的WPS 1,结果的保存结构简化目标,暂不考虑db持久化,全部内存或者文件存储;先使用树结构,持久化的时候再做优化。 2,分析单次取文件目录的实现方法 BOOL CListContent::ConnectToServer(){ UpdateData(true); pSession = new CIntern原创 2009-08-08 10:51:00 · 308 阅读 · 0 评论 -
090810项目进展
1,dps时,IsContinue = pFileFind->FindFile("*"); 在调用之后发生12110错误,导致遍历无法继续。分析了好几种原因,甚至怀疑是一个connection不能同时被多个CFtpFileFind使用。 2,换成wps,CQueue居然没有现成可用的,好在并不复杂,赶紧自定义了一个。编译运行,在第二层目录SetCurrentDirectory时返回错原创 2009-08-10 21:02:00 · 340 阅读 · 0 评论 -
090811项目进展
今天终于把一个Server的文件遍历搞定,最终还是使用了WPS的方法,回过头再试DPS还是不行,唯一的区别就在于DPS同时会有两个CFtpFileFind去连接同一个CFtpConnect,而WPS每次都只有一个。 void CListContent::OnGetContent() { UpdateData(true); m_IPAddrDest.GetWindowTe原创 2009-08-11 19:39:00 · 580 阅读 · 3 评论 -
090811这几天的计划
放放db,先把网络几块搞好。 1,完成对所有检测到的FTPServer进行目录遍历。 2,把目录遍历的线程抽出来。 3,进行SMB,Windows共享文件和samba文件的搜索。 4,搜索p2p特征共享文件。原创 2009-08-11 20:08:00 · 268 阅读 · 0 评论 -
090813项目进展
intelligent主项目没有进展。 主要尝试WNet系列方法的使用。 新建project WNetEnum,完成对局域网主机资源的搜索。MSDN自带源码和描述非常有用,甚至比网上可以搜索的资源好很多,可以先把这些资料项目化,搜索起来效率更高。 局域网上 共享文件的资源 非常丰富,同时搜索性能很差,很值得去实现共享资源的搜索功能,价值很高。但网络资源出现了忽然中原创 2009-08-13 21:22:00 · 301 阅读 · 0 评论 -
090812项目进展
今天进展不大1,完成兼容 SMB搜索的 功能框架,加入RadioButton,使用单项按钮控制FTP搜索还是SMB搜索。 2,新建一个project,试了一下NetServerEnum的 使用方法,仍然还有问题,了解有待深入。原创 2009-08-12 19:11:00 · 378 阅读 · 0 评论 -
090814项目进展
1,调通msdn中WNetEnumResouce函数的示例,终于看到了局域网处理函数的效果,可是本机所在的域访问了几下之后不能访问了,目前定位到: 是WNetOpenEnum Gclear时返回 错误码5,访问权限问题。之后有使用函数WNetAddConnection2试图 使用帐号登录,返回主机名错误的问题,具体还得继续查下去,域问题解决不了可以先考虑不要使用域用户登录,再访问网上原创 2009-08-14 23:34:00 · 425 阅读 · 0 评论 -
090815项目进展
1,遍历网络资源的源码和Output效果:#include #include #include #include #include #include void NetErrorHandler(DWORD dwRet, char *cReason){ cout << cReason << " Error Code:" << dwRet <<原创 2009-08-15 15:57:00 · 328 阅读 · 0 评论 -
090816项目进展
1,完成通过IP地址检测主机SMB服务(简单等同于是否有共享文件)是否开启状态。 SearchSite.cpp中增加全局函数CheckSMBStatus,因为该函数需要在新建线程中调用,没有定义成SearchSite类的成员函数。BOOL CheckSMBStatus(CString &strIPAddr){ /* 1,构造NetResource入参 */原创 2009-08-16 20:54:00 · 357 阅读 · 0 评论 -
090817项目进展
1,昨天留下一个RadioButton的问题,本来还认为可能需要再去看看MFC消息机制的,忽然想起一个更简单的方法,方便易行,问题解决了。void CSearchSite::OnRadioSmb() { // TODO: Add your control notification handler code here m_port = 0; m_serverType = 1; // H原创 2009-08-17 21:20:00 · 342 阅读 · 0 评论 -
090819项目进展:了解emule基础知识,猜想实现的方向
猜想了一下ed2k资源的内网搜索可能有两种方案:一,对给定ip段的主机进行搜索,观察也没有ed2k资源正在进行交互,如果有,对资源名称进行分析记录,作为搜索依据。二,定位eMule服务器,调用eMule公开的搜索API进行资源搜索。 方案一太FTP了,eMule客户端自己的搜索也是按照方案二的,方案二是比较现实的方向。如果要在内网实现,需要这样几个步骤:1,使用内网提供原创 2009-08-19 20:48:00 · 379 阅读 · 0 评论 -
090818项目进展:了解emule基础知识
1,内网有哥们建立了一个ed2k的共享平台,但是必须在BBS上发布链接地址才能真正得到共享,不是太方便。所以想尝试一下是否可以在特定网络进行ed2k资源的搜索,毕竟官方版的eMule软件中搜索是最基本的功能。 从“知道”搜了些资料,感谢 yangyede2007兄:2,资源URLed2k://|file|DJ.MAYUMI.-.%5BLove.Is.selected.原创 2009-08-18 22:50:00 · 944 阅读 · 0 评论 -
090821项目进展:内网p2p软件运行时的码流分析
1,首先昨天被忘记的哪个UDP携带的协议的名字,叫做Cross Point Frame Injector,但是也毫无意义了,查了一下,这个是wireshark的bug,解码错误导致的,升级到wireshark1.1.3,就不会被错误的解码成CPFI了。 A共享一个文件,讲串码string告诉B,B连接A的码流过程:1,A 2,A ---> B,同样一个简单的udp包,D原创 2009-08-21 20:59:00 · 566 阅读 · 0 评论 -
090820项目进展:了解内网p2p软件共享机制
1,实验了一下,如果要下载一个资源,需要在得知这个资源的类似URL字串(私下告知,BBS发布,邮件发布等等),一个例子: xp2p:192.168.0.2:5000:filename.avi:someidbyMD5dad 如例子所示字串由五部分组成,分别是: xp2p: 192.168.0.2:5000:filename.avi:someidb原创 2009-08-20 18:56:00 · 724 阅读 · 0 评论 -
090822项目进展:学习emule源码1,
了解一下eMule的源码,搜索一下关于微软p2p SDK的内容,加深对p2p文件共享的理解。 eMule的源码明明白白的放在互联网上,实实在在的宝贵资料,但是想看懂是不容易的,需要时间精力的投入,需要好的方法。现在也就打算了解个皮毛,有些初级的了解,下周再向高手请教一下内网p2p软件搜索的可行性。如果不可行的话就不考虑p2p资料的搜索了,转向数据库先把SearchTool项目的功能实原创 2009-08-22 22:01:00 · 568 阅读 · 0 评论 -
090824项目进展:学习emule源码3,CAICHHashTree
1,依据文件块的位置和单元块的大小PARTSIZE查找hashTree。FindHash是被重载的:public: CAICHHashTree* FindHash(uint64 nStartPos, uint64 nSize) {uint8 buffer = 0; return FindHash(nStartPos, nSize, &buffer);}和:pro原创 2009-08-24 19:00:00 · 499 阅读 · 0 评论 -
090825项目进展:回到主项目,添加smb资源的网段搜索一
新增一个dialoguePage,1,insert dlg2,new class3,添加一个新dlg的变量到主窗口。4,BOOL CIntelligentFtpDlg::OnInitDialog()中for循环,create一个临时 case 2: Item.pszText = "查询"; pPropPage->m_pDialogPage = (CDialog*)&m_Quer原创 2009-08-25 22:24:00 · 305 阅读 · 0 评论 -
090826项目进展:添加smb资源的网段搜索二
1,添加变量// Dialog Data //{{AFX_DATA(CDlgSmbList) enum { IDD = IDD_SMBLIST }; CTreeCtrl m_smbTree; CIPAddressCtrl m_addrTo; CIPAddressCtrl m_addrFrom; //}}AFX_DATA 2,函数OnButtonSearchvoid CDlgS原创 2009-08-26 19:48:00 · 357 阅读 · 0 评论 -
090827项目进展:添加smb资源的网段搜索三
1,添加ipFrom 和 ipTo的关联,保持to > from,而且不夸网段。 void CDlgSmbList::OnFieldchangedIpaddress1(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here BYTE field0,fi原创 2009-08-27 21:02:00 · 419 阅读 · 0 评论 -
090828项目进展:学习emule源码4,CAsyncSocketEx
/*CAsyncSocketEx by Tim Kosse (Tim.Kosse@gmx.de) Version 1.2 (2003-03-28)--------------------------------------------------------Introduction:-------------CAsyncSocketEx is a replacemen原创 2009-08-28 21:10:00 · 910 阅读 · 0 评论 -
090829项目进展:数据持久化
1,内网的p2p程序好像销声匿迹了,多次和作者联系也没有结果,遗憾,虽然现在内网的p2p资料共享量很少了,但是程序本身还是非常有意思的。 2,FTP的资源也很有限。 3,smb共享资源是值得搜索的重点,如果搜索得好对资源利用率有很大提高。 eMule的源码很精彩,可惜比较难,得不少时间精力,有机会再说。asterisk源码甚至可以先考虑下。 当前smb资源可以进行网原创 2009-08-29 20:32:00 · 282 阅读 · 0 评论 -
090830项目进展:smb资源的深层递归
深度遍历smb文件目录1,FTP的深度遍历用法,使用CFtpFileFind类,MFC直接提供,很方便,但不适合smb资源。F1, pSession = new CInternetSession(AfxGetAppName(), 1,原创 2009-08-30 20:32:00 · 491 阅读 · 0 评论 -
090831项目进展:smb资源的深层递归2
1,如果发现是可以连接的资源,进入函数AddConnectableRcs,深入一层遍历文件名。 for(i = 0; i { // Call an application-defined function to // display the contents of the NETR原创 2009-08-31 20:37:00 · 349 阅读 · 0 评论 -
090901项目进展:smb资源的深层递归3
一、SetCurrentDirectory使用这个函数,把当前目录定位到已经连接好的服务器上。改动后的AddConnectableRcs函数:DWORD AddConnectableRcs(LPNETRESOURCE lpConnectable, CTreeCtrl *pTree, HTREEITEM hItemParent){ if (NO_ERROR != WNetA原创 2009-09-01 19:18:00 · 410 阅读 · 0 评论 -
090902项目进展:smb资源的深层递归4,wps分析
一、“..”不需要加入到树结构 // 第一个文件是“.” printf ("First file name is %s/n", FindFileData.cFileName); // 第二个文件是“..”,也不需要加入树结构 FindNextFile(hFind, &FindFileData); // 其他加入结构原创 2009-09-02 20:37:00 · 369 阅读 · 0 评论 -
090903项目进展:smb资源的深层递归5,wps实现,
一、对SMB服务器进行WPS遍历对一个Connectable的资源项进行遍历:DWORD AddConnectableRcs(LPNETRESOURCE lpConnectable, CTreeCtrl *pTree, HTREEITEM hItemParent, int maxLayer){ // 1, WNetAddConnection2,使远程文件可以如同本地文件意义操原创 2009-09-03 20:31:00 · 522 阅读 · 0 评论 -
090904项目进展:强制终止线程
一、添加控制遍历深度的Edit控件1,GUI控件,添加变量,限制取值范围。 2,初始化 3,传给进行搜索的工作线程 二、添加停止线程的方法虽然前期也做过不少的效率改进:先ping在线,再检测SMB,速度已经比直接检测SMB快十倍以上,但是大IP段遍历的时候提供一个终止的功能还是很有得上的。1,变换button的表现,添加状态开关。 2,停止线程的功原创 2009-09-04 21:37:00 · 1021 阅读 · 0 评论 -
090906(星期天)项目进展:添加CTreeView控件对双击事件的响应
0904号星期五的时候提到终止线程的四个方案,使用第一个方案实现了,达到了功能,其他几个方案等需要的时候再看看吧。持久化的问题还可以再放放,反正这个功能是跑不了的,可以多花些时间加强现在的功能。回到3号提出的一个功能:一、增加双击事件的需求1,如果不是叶子节点:展开节点2,如果该叶子节点是一个目录:使用Windows的explorer打开这个目录;3,如果该叶子节点是一个文件:原创 2009-09-06 23:14:00 · 1180 阅读 · 0 评论 -
090905项目进展:终止线程的实现方案一:共享“状态变量”内存
一、使用最简单的全局变量方法停止线程采用昨天方案一中的线程函数内部正常退出。通过线程函数入参进行消息通讯。1, 加入状态在线程函数入参:使用指针传入,指针所指的内存,线程内外都可以读写,也相当于是一种很粗俗的共享内存方法了。 BOOL *pbSearching; // 控制线程状态struct tCheckStatus{ CListCtrl *pm_l原创 2009-09-05 23:23:00 · 508 阅读 · 0 评论 -
090907(星期一)项目进展:学习MFC的消息映射
一、MFC消息映射1 Message Mapping中重要的数据结构l AFX_MSGMAPstruct AFX_MSGMAP{ AFX_MSGMAP* pBaseMessageMap; //指向其基类MessageMap的指针,串化及上溯Message AFX_MSGMAP_ENTRY* lpEntries原创 2009-09-07 20:49:00 · 350 阅读 · 0 评论 -
090910(星期四):MFC程序的初始化
一、MFC程序的初始化1 InitApplication负责“每一个程序只做一次”的操作,2 InitInstance负责“每个例程都得做一次”的操作,通常在CMyWinApp中改写InitInstance,并在其中把窗口产生出来。3 main,WinMain函数:#include "my.h"CMyWinApp theApp; // global object//----原创 2009-09-10 22:07:00 · 363 阅读 · 0 评论 -
090911(星期五):RTTI运行时类型识别
RTTI运行时类型识别 // in MFC.Hstruct CRuntimeClass{// AttributesLPCSTR m_lpszClassName;int m_nObjectSize;UINT m_wSchema; // schema number of the loaded classCObject* (PASCAL* m_pfnCreateObj原创 2009-09-10 22:38:00 · 453 阅读 · 0 评论 -
090908(星期二):学习MFC
一、win32程序基础Windows程序必须在开始之前做些初始化工作,CreateWindow之前把窗口的外貌和行为在WNDCLASS里设置好,并进行注册:RegisterClass(&wc);CreateWindow只是创建窗口,之后再利用ShowWindow进行显示。 RegisterClass封装在InitApplication函数中,CreateWindow封装在Ini原创 2009-09-08 21:43:00 · 286 阅读 · 0 评论 -
090909(星期三):学习MFC二
一、一个进程的生命周期1,shell调用CreateProcess启动App.exe2,系统产生一个进行核心对象(包括,semaphore,file,file-mapping,process,thread)3,系统为进程建立一个地址空间4,装载代码、文件指针、dll到进程地址空间5,系统为进程建立一个主线程6,系统调用Starup code7,Starup code调用原创 2009-09-09 20:47:00 · 309 阅读 · 0 评论 -
090912(星期六):MFC
一、 MFC中的Callback函数1 如果类的成员函数是个Callback函数,必须将其置成static型以去掉隐藏的this指针。凡是由程序员设计而由Windows系统呼叫的函数,统称为Callback函数。某些Windows系统函数需要一个Callback函数作为它的一个参数,如SetTimer,LineDDA,EnumObjects。通常API在做完某种活动后或满足一定状原创 2009-09-13 23:25:00 · 423 阅读 · 0 评论