java 扫描tcp端口号_Java 端口扫描器 TCP的实现方法
想必很多朋友都实现过一个简易的聊天室这个功能,其中涉及到Socket套接字这个类,我们通过一个特定的IP以及特定的端口创建一个服务端的套接字(ServerSocket),以此我们聊天个体的套接字(Socket)再与其连接,从而实现连通并通过流来传递信息的聊天室功能。
而端口扫描器所用的知识体系也是基于Socket,相当于我们已经有一个 服务器端的套接字,我们去查看其是否能够连通,即可。
按照上面的思路,我们可能已经有了一个大体的思路:
我们通过建立一个Socket来连接一个要扫描的IP以及PORT,只建立连接不传递数据。
再通过捕捉IOException来检测是否连接成功。
所以大家很快就会有一串如下的实现代码:
static public String ScannerPortisAlive(intport,String HostIP){
String result="OPEN";try{
Socket testPortSocket= newSocket(HostIP, port);
testPortSocket.close();
}catch(IOException e) {
result= "CLOSE";
}returnresult;
}
但是在我实际测试情况来看,这段代码的执行效率非常低下,问题出在哪里呢?
原来,当端口不通时,Socket会默认等待,所以我们要重新设置连接等待时长。
static public String ScannerPortisAlive(intport){
String result="OPEN";
Socket socket=null;try{
socket=newSocket();
InetAddress ip=InetAddress.getLocalHost();
SocketAddress address=newInetSocketAddress(ip, port);
socket.connect(address,100);
socket.close();//Socket testPortSocket = new Socket(HostIP, port);//testPortSocket.close();
}catch(IOException e) {
result= "CLOSE";
}returnresult;
}
除此之外,我们只需要再开一个线程池来处理要处理的端口就可以啦。
笔者实现了一个简单的可用的桌面端口扫瞄器,大家可以用作参考:
java 扫描tcp端口号_Java 端口扫描器 TCP的实现方法相关推荐
- linux 端口没有进程号,「linux专栏」何为端口号?端口号和进程号如何互查?答案在这里...
何为端口号?端口号和进程号如何互查?这里我们来说一说,列举几种常见的查看方法.#linux专栏# 何为端口号? 在互联网时代的今天,每台联网的计算机都有自己的IP,这个IP好比是在互联网上的地址编号, ...
- mysql有多少个端口号_查看mysql端口号(mysql端口号是多少)
查看mysql端口号(mysql端口号是多少) 2020-05-07 22:11:45 共10个回答 如何查看mysql的端口号 1使用命令showglobalvariableslike'port'; ...
- java email怎么设置端口号_java mail 设置参数
Session需要使用java.util.Properties来构造,常用的用来构造Session的属性: 属性名 含义 mail.smtp.user SMTP的缺省用户名. mail.smtp.ho ...
- java qq邮箱发送端口号_java实现qq邮箱的发送
准备工作 开启PO3/SMTP服务 打开qq邮箱>账户 记住这串授权码 会用到 java发送qq邮箱实现步骤 创建一个javase的工程 3. 编写核心代码 我这里封装了 也可以不封装 /** ...
- java tcp 编程实例_Java实现基于TCP的通讯程序实例解析
Java中的TCP通信程序 TCP可以实现两台计算机之间的数据交互通信的两端,要严格区分客户端与服务端 两端通信时的步骤: 1.服务端程序,需要事先启动,等待客户端连接 2.客户端主动连接服务器端,才 ...
- snmp同步端口号_SNMP端口号教程及其示例
snmp同步端口号 Simple Network Management Protocol aka SNMP is used to monitor and manage devices over the ...
- java tcp聊天程序_java实现基于Tcp的socket聊天程序
对于步入编程行业不深的初学者或是已经有所领会的人来说,当学习一项新的技术的时候,非常渴望有一个附上注释完整的Demo.本人深有体会,网上的例子多到是很多,但是很杂不完整,写代码这种东西来不得半点马虎, ...
- mysql怎么看端口号_mysql端口号(怎么查看mysql的端口号)
mysql端口号(怎么查看mysql的端口号) 2020-05-07 21:54:58 共10个回答 如何查看mysql的端口号 1使用命令showglobalvariableslike'port'; ...
- tomcat中间件的默认端口号_tomcat端口号修改(tomcat默认端口号是多少)
tomcat端口号修改(tomcat默认端口号是多少) 2020-05-07 22:25:25 共10个回答 怎么改tomcat的端口号? 修改tomcat端口号的方法:修改Server.xml文件, ...
- java中如何读写文件_JAVA: 读写文件的几种方法
如果您使用java8,可以也参考这篇文章:JAVA: Java8流逐行读取文件 import java.io.BufferedReader; import java.io.BufferedWriter ...
最新文章
- [Bzoj1061][Noi2008]志愿者招募(费用流)
- 展开被 SpringBoot 玩的日子 《 二 》 WEB 开发
- A Complete List of .NET Open Source Developer Projects
- hushen 300
- SSAS(分析服务)优化手册
- java aio复制文件_java复制文件的4种方式及拷贝文件到另一个目录下的实例代码...
- 面试官:连Spring三级缓存都答不好,自己走还是我送你?
- DataTable新增列设置DefaultValue问题。
- @Controller @RestController
- (组合数学笔记)Pólya计数理论_Part.4_Burnside引理
- mysql操作json优点和缺点_详解Mysql中的JSON系列操作函数
- base——JavaSEJavaEEJavaME的区别【Java中常用的包结构】
- Android之多种Bitmap效果
- 张俊芳电机学14章计算题以及答案
- NotifyIcon用法
- SAP Hybris企业培训
- ccf 命令行选项 java,DiskPart 命令行选项
- c51单片机汇编语言1秒延时,51单片机汇编延时程序算法详解
- 嵌入式技术及应用基础实验
- PDF限制编辑怎么解决
热门文章
- 你真的了解“手机端的 C/S架构 向 B/S架构 迁移”吗
- 济南计算机技术学校,省技工院校计算机技术中心教研组会议在济南市技师学院召开...
- 软件保护技术 - 基础
- 笔记本安装win10+ubuntu双系统超详细教程
- MayaDay1:历史记录和删除历史记录
- Java加密套件强度限制引起的SSL handshake_failure
- cadence SPB17.4 - 更换已有原理图的标题栏
- iOS6.1/iOS6.0.1完美越狱迟迟不现身 pod2g发推文澄清
- 霏霏暮雨 eclipse+HBASE开发环境搭建(已实践
- “开心偷菜”一梦8年终成空,终究还是输给了时间和规则!