- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
发现服务已开启的TCP服务
1、源代码:
#pragma pack(4)
#pragma comment (lib,Ws2_32.lib)
#includestdio.h
#includewinsock2.h
#includews2tcpip.h
#includestdlib.h
#includeiostream.h
#define STATUS_FAILED 0xFFFF // 错误码
unsigned long serverIP; // 扫描的服务器地址
long MaxThread = 200; // 最大允许的扫描线程数
long ThreadCount=0; // 当前正在扫描的线程数
long *aa=ThreadCount;
DWORD WINAPI ScanPort(LPVOID lpParam); // 扫描端口的线程
void main(int argc,char * argv[]) // 主函数
{
if(argc!=2) //判断输入格式是否正确
{
cout输入格式错误:ScanUsePort serverip:endl; // 对参数格式进行判断
return; // 结束执行,返回
}
WSADATA WSAData; // 定义变量
if(WSAStartup(MAKEWORD(2,2),WSAData)!=0)// 开始使用Ws2-32.dll
{
coutWSAStartup failed: GetLastError()endl; // 出错时显示
ExitProcess(STATUS_FAILED); // 退出进程
}
serverIP=inet_addr(argv[1]); // 获取输入的IP地址
cout使用中的端口号: endl;
for(int i=1;i1024;i++) //扫描所有服务器端口
{
while(ThreadCount=MaxThread) //超过最大允许线程数,等待
{
Sleep(10); // 睡眠10ms,暂停线程执行
}
DWORD ThreadID;
//创建线程,扫描端口
CreateThread(NULL,0,ScanPort,(LPVOID)new short(i),0,ThreadID);
}
while(ThreadCount0) //还有未完结的线程,等待
{
Sleep(50); // 睡眠50ms,暂停线程执行
}
WSACleanup(); //调用WSACleanup函数来解除与Socket库的绑定并且释放Socket库所占用的系统资源
}
//扫描线程的端口
DWORD WINAPI ScanPort(LPVOID lpParam)
{
short Port=*(short*) lpParam; //定义端口
InterlockedIncrement(aa); //线程数目+1
SOCKET sock=socket(AF_INET,SOCK_STREAM,0); //创建原始套接字
if(sock==INVALID_SOCKET)
{
cout创建套接字失败!endl;
return 0;
}
else
{
sockaddr_in severAddr; //搜索的服务器IP
severAddr.sin_family=AF_INET;
severAddr.sin_port=htons(Port); //端口地址
severAddr.sin_addr.S_un.S_addr=serverIP; //IP地址
connect(sock,(sockaddr*)severAddr,sizeof(severAddr)); //写socket集合
struct fd_set write;
FD_ZERO(write);
FD_SET(sock,write);
struct timeval timeout; //超时
timeout.tv_sec=100/1000;
timeout.tv_usec=0;
//设置超时时间
if(select(0,NULL,write,NULL,timeout)0)
{
coutPortendl;
}
closesocket(sock); //关闭socket
}
InterlockedDecrement(aa); //进程数目-1
return 0;
}
您可能关注的文档
- 发电2010年危险源辩识清单.doc
- 朱理第二版机械原理课后作业.ppt
- 软考网络工程师2009上半年试题分析与解答(下午).pdf
- 【视听心理学】闪光融合频率--第3小组提高性实验报告.doc
- 很好的思想汇报.doc
- 凯立德3D导航成功安装使用详解.doc
- PC、ABS合金树脂.pdf
- 电子电工测验.doc
- 职务说明书—开发.doc
- 北京市平谷区2011-2012九年级上学期期末考试数学试卷及答案-修订.doc
- 职业病危害事故处置与报告制度.docx
- 公用事业-公用环保202507第2期:零碳园区建设推进,2025年可再生能源电力消纳责任权重发布-国信证券[黄秀杰,郑汉林,刘汉轩,崔佳诚]-20250714【29页】.docx
- 房地产市场报告 -2025年二季度北京甲级写字楼市场回顾与展望.docx
- 焊接热输入对高速列车转向架耐候钢焊缝金属微观组织、力学性能及腐蚀行为的影响.docx
- 国际宏观-#海外经济:《大美丽法案》:内容、影响与策略启示-东吴证券[芦哲,张佳炜,韦祎,王茁]-20250714【15页】.docx
- 公用事业-公用事业及环保产业行业研究:参考海外经验,英国容量市场规则是如何设计的?-国金证券[李蓉,唐执敬,张君昊]-20250713【17页】.docx
- 宏观策略-红利研究(1):为什么是银行?终点又在何处-中邮证券[黄子崟]-20250714【14页】.docx
- 房地产-房地产行业研究:政策预期持续发酵,地产RWA趋势渐起-国金证券[池天惠]-20250713【19页】.docx
- 钢铁-“反内卷”持续发酵,钢价偏强运行-民生证券[邱祖学,范钧]-20250713【20页】.docx
- 宏观研究-人民币汇率专题深度研究:从定价模式和资本流动看人民币-东海证券[刘思佳]-20250710【16页】.docx
文档评论(0)