多线程端口扫描实现(C语言)
源码:
#include
#include
#include
#include
#include
#pragma comment(lib,"WS2_32.lib")
DWORD WINAPI ScanThread (LPVOID port);
int main (int argc, char* argv[])
{
WSADATA wsd;
int port = 0;
int MAX_PORT;
clock_t start, end;
HANDLE handle;
DWORD dwThreadId;
//Initialize socket lib
if (WSAStartup (MAKEWORD (2, 2), &wsd) != 0)
{
printf ("WSAStartup failed!\n");
return 1;
}
printf ("请输入要扫描的最大端口:");
scanf ("%d", &MAX_PORT);
printf("Scaning......\n");
start = clock ();
//扫描的主要代码,根据需要删减
do{
handle = CreateThread (NULL, 0, (LPTHREAD_START_ROUTINE)ScanThread, (LPVOID)port, 0, &d