多執行緒埠掃瞄程式

2021-09-28 14:04:30 字數 1590 閱讀 6581

實現乙個多執行緒埠掃瞄程式:

要求:1、能至少掃瞄5個ip位址;

2、針對每個ip位址,開設100個執行緒同時對其進行掃瞄;

3、如果埠開啟,使用函式getservbyport獲取其服務名,在螢幕上列印:ip port servername,如果是未知服務,則螢幕顯示:ip port unkonown

注意各種引數傳遞的型別

arg是乙個位址,將arg位址複製到&port的時候,arg位址的資料已經被改變了。

memcpy( &port, arg, sizeof(struct port_segment) );

解決方法:建立100個執行緒就建立100個傳過來的引數,每個執行緒傳遞不同的引數位址

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define thread_num 100

void

print_usage

(char

* cmd)

typedef

struct port_segment port_segment;

intis_connect

(int port, in_addr_t addr)

memset

(&server,0,

sizeof

(struct sockaddr_in));

server.sin_family = af_inet;

server.sin_addr.s_addr = addr;

server.sin_port =

htons

(port);

ret=

connect

(sockfd,

(struct sockaddr*

)&server,

sizeof

(struct sockaddr));

close

(sockfd);if

(ret<0)

else

}void

*scan_port

(void

*arg )

else}}

}void

scan_ip

(char

*ip)

elseif(

pthread_create

(&thread[i]

,null

, scan_port,

(void*)

&port[i])!=

0)}for

(i=0

;i)printf

("ip掃瞄結束:%s\n"

,ip);}

intmain

(int argc,

char

*ar**)

int i =1;

for(i=

1;i)return0;

}

實現多執行緒埠掃瞄

實驗要求 能至少掃瞄5個ip位址 針對每個ip位址,開設100個執行緒同時對其進行掃瞄 如果埠開啟,使用函式getservbyport獲取其服務名,在螢幕上列印 ip port servername,如果是未知服務,則螢幕顯示 ip port unkonown 實驗環境 red hat 9 thre...

C 編寫的多執行緒埠掃瞄程式

using system using system.drawing using system.collections using system.componentmodel using system.windows.forms 增加的如下.using system.data using system...

python埠掃瞄器(多執行緒)

我們這裡拿某特爾的一款九代i5cpu做例子,這一款是6執行緒的。而這一款,是某特爾的九代i9 各位大佬,可以看出來執行緒的差別有多大了吧,執行緒就是決定了運算速度,所以說啊,有執行緒和沒執行緒的差距有多大哈 廢話說完,讓我們正式進入 coding utf 8 import socket,time,t...