程序适应环境与基本介绍
- 情况:开2000个线程,扫描主机上开启的端口,扫描时间40秒左右。
- 瓶颈:不管开5000还是更多,都不能大幅加快扫描时间。
- 瓶颈解决方法:可以使用最常被开放的1000个端口列表进行扫描,网上应该有,社会学+编程。
- 注意:socket是宝贵的系统资源,不用要关闭;多线程中临界区资源要加锁。
- 编程环境:vs2008(c98)
- 代码如下:
#include "stdafx.h"
#include <stdio.h>
#include <Winsock2.h>
#pragma comment(lib,"Ws2_32")
#define IP "127.0.0.1"
#define THREADCOUNT 2000
DWORD WINAPI ThreadProc( LPVOID lpParameter);
int PortNum=0;
CRITICAL_SECTION cs;
DWORD WINAPI ThreadProc( LPVOID lpParameter)
{
SOCKET TryConnect;
while (1)
{
if (PortNum>65535)
{
break