好久没写java了,学的时候,也没学习网络编程这一块,无意中看到了一本书,于是小小复习一下java,写个端口扫描器,玩玩吧,网上这种小公具有的是,就是自己无聊写着玩玩。

源代码如下:

共两个类,比较简单奥

import javax.swing.*;import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.*;
public class PortScan extends JFrame {JPanel center=new JPanel();Box hBox0=Box.createHorizontalBox();Box hBox1= Box.createHorizontalBox();Box hBox2= Box.createHorizontalBox();Box hBox3= Box.createHorizontalBox();private JLabel state=new JLabel("关闭");private JLabel HOST=new JLabel("主机名:");private JLabel PORT=new JLabel("端口号:");private JLabel STATE=new JLabel("状态:");private JButton btn1=new JButton("开始扫描");private JButton reset=new JButton("重置");private JTextField host=new JTextField(20);private JTextField port=new JTextField(7);Font f1=new Font("隶书",Font.PLAIN,15);public static void main(String[] args) {JFrame portscan=new PortScan();portscan.setVisible(true);}public PortScan(){setTitle("PortScanner");setSize(300, 200);center.setLayout(new BoxLayout(center,BoxLayout.Y_AXIS));Toolkit kit = Toolkit.getDefaultToolkit();Dimension screenSize = kit.getScreenSize();//获取屏幕分辨率setLocation(screenSize.width/4,screenSize.height/4);//位置state.setFont(f1);HOST.setFont(f1);PORT.setFont(f1);btn1.setFont(f1);reset.setFont(f1);STATE.setFont(f1);center.add(hBox0);center.add(Box.createRigidArea(new Dimension(10,20)));center.add(hBox1);center.add(Box.createRigidArea(new Dimension(2,20)));center.add(hBox2);center.add(Box.createRigidArea(new Dimension(2,20)));center.add(hBox3);hBox0.add(HOST);hBox0.add(host);hBox1.add(PORT);hBox1.add(port);hBox2.add(btn1);hBox2.add(reset);hBox3.add(STATE);hBox3.add(state);add(center);btn1.addActionListener(new MyActionListener());reset.addActionListener(new MyActionListener());}class MyActionListener implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {String post1=host.getText();int port1=Integer.parseInt(port.getText());if(e.getActionCommand()=="开始扫描"){if(    PortScannerByIP.scan(post1, port1)){state.setText("开放");}else{state.setText("关闭");}}if(e.getActionCommand()=="重置"){host.setText("");port.setText("");}}}
}import java.io.IOException;
import java.net.Socket;public class PortScannerByIP {public static boolean scan(String host,int port){boolean flag=true;Socket socket=null;try {socket=new Socket(host,port);return flag;} catch (IOException e) {flag=false;return flag;}finally{try {if(socket!=null)socket.close();} catch (IOException e) {e.printStackTrace();}}}
}

运行截图:

java编写一个端口扫描器相关推荐

  1. python编写一个端口扫描器

    可以使用 Python 来编写一个端口扫描器.下面是一个简单的端口扫描器的代码示例: import socketdef port_scanner(host, port):try:sock = sock ...

  2. java编写存钱_用Java编写一个简单的存款

    package desposit.money; public class DespositMoney { public static void main(String[] args) { Custom ...

  3. 用java编写一个简单计算器

    java 采用java编写一个简单计算器,使用awt和swing 代码如下: import java.awt.Color; import java.awt.Font; import java.awt. ...

  4. 停车场管理系统 java_使用java编写一个停车场管理系统

    使用java编写一个停车场管理系统 发布时间:2020-11-30 16:00:28 来源:亿速云 阅读:145 作者:Leah 这篇文章给大家介绍使用java编写一个停车场管理系统,内容非常详细,感 ...

  5. java编写一个个人通信录程序

    Java编写一个个人通信录程序,具有如下功能: (1)定义一个类,包括姓名.邮政编码.通信地址等成员变量 (2)查找:根据姓名在文件中查找个人信息,如果找到则显示出来 (3)添加:向文件中写个人信息 ...

  6. java编写一个彩票开奖的模拟程序.游戏共有两种玩法,一种是21选5,即玩家输入5个1到21内的不重复的数。另外一种玩法是6+1玩法,即要求玩家输入7个整数,代表所购买的彩票号码,最后一个是特码。

    java编写一个彩票开奖的模拟程序.游戏共有两种玩法,一种是21选5,即玩家输入5个1到21内的不重复的数.另外一种玩法是6+1玩法,即要求玩家输入7个整数,代表所购买的彩票号码,最后一个是特码. 具 ...

  7. 用Java编写一个最简单的桌面程序

    使用Java的优势在于网络应用方面,但Java也提供了强大的用于开发桌面程序的API,它们包含在javax.swing包中.使用这个包可以编写简单的Java桌面应用程序. Java的javax.swi ...

  8. 如何用java编写一个简单的多人PK游戏

    如何用java编写一个简单的多人PK游戏 类与对象---PK游戏的编写 素材取用----王者荣耀和BILIBILI 创建两个对战的角色(PK游戏最少需要两名角色) 创建孙尚香和Van 设置孙尚香和Va ...

  9. JAVA编写一个年龄大小判断年纪题

    JAVA编写一个年龄大小判断年纪题 public class C{public static void main(String [] args){java.util.Scanner s = new j ...

最新文章

  1. 速读《构建之法:现代软件工程》提问
  2. jquery实现上下左右键盘监听_python 使用pygame工具包实现贪吃蛇游戏(多彩版)
  3. 生活大爆炸第6季第12集
  4. Work Measurement - 1
  5. leetcode 785. Is Graph Bipartite? | 785. 判断二分图(DFS,地图着色)
  6. open ssl里面的自定义get***函数失效
  7. 【LeetCode】拓扑排序
  8. BZOJ 2301 Problem b(莫比乌斯反演+分块优化)
  9. [swustoj 771] 奶牛农场
  10. 对variable-sized object may not be initialized的一点理解
  11. 浅谈PMSM电机控制之Clark变换(详细推导及MATLAB仿真)
  12. 幽默故事:1、我喜欢的女神;2、农村淑女(木子家原创)
  13. Scala下Play框架学习笔记(Actions,Controllers and Results)
  14. 网站服务器商标属于哪类,网络平台商标注册属于什么类别?-商标分类表-猪八戒知识产权...
  15. DW1000 datasheet FUNCTIONAL DESCRIPTION
  16. YOLOv7改进主干系列:首发结合最新 QARepVGG 升级Rep结构, 本文对其进行原创改进 QARepNeXt 结构,基于美团提出一种量化感知方法:再一次让 RepVGG 变得更好
  17. R语言学习笔记:主成分分析及因子分析
  18. 程序员需要了解的 现代散文精选翻译
  19. 三星HDM Odyssey适配SteamVR
  20. STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度

热门文章

  1. 金 融 量 化 分 析 • JoinQuant • 第 一 篇
  2. 从ARM7TDMI(-s)角度进入ARM世界
  3. lisp 左手钢筋_钢筋下料小常识.doc
  4. Centos 7安装配置NTP网络时间同步服务器
  5. 高并发下生成订单号的策略
  6. 周涛:在人工智能时代,做一个警觉的乐观主义者
  7. SEM广告创意的编写
  8. role属性:html中role的作用
  9. CR0-4寄存器介绍
  10. 登录用友时显示不能建立跟服务器的连接,用友GRPR9乡财县管管理软件登录时提示“无法与中间层服务器建立连接,请重新设置中间层”的解决办法知识课件(11页)-原创力文档...