實現乙個多執行緒埠掃瞄程式:
要求: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...