今天有个朋友让我帮他做个扫描端口的小程序,就是看某台机器打开了哪些端口,既然已经写了就顺便贴出来一下,虽然不是什么复杂东西,给相关需要的人参考一下吧:)下面是原代码

  1using System;
  2using System.Collections.Generic;
  3using System.ComponentModel;
  4using System.Data;
  5using System.Drawing;
  6using System.Text;
  7using System.Windows.Forms;
  8using System.Threading;
  9using System.Net;
 10using System.Net.Sockets;
 11
 12namespace Scan
 13{
 14    public partial class Main : Form
 15    {
 16        //主线程
 17        private Thread tdm;
 18        //开始端口,结束端口
 19        int Start, End;
 20       //线程数
 21        private int count=0;
 22        //当前扫描端口
 23        private int i;
 24        public Main()
 25        {
 26            InitializeComponent();
 27        }
 28        /**//// <summary>
 29        /// 副线程
 30        /// </summary>
 31     private void Process()
 32        {
 33         //当前要扫描的IP地址
 34            string IP;
 35        
 36            IP = mkIP.Text;
 37
 38                TcpClient tc = new TcpClient();
 39                tc.SendTimeout = tc.ReceiveTimeout = 20000;
 40
 41                try
 42                {
 43                    //建立连接
 44                    tc.Connect(IP, i);
 45                    //判断是否连接成功
 46                    if (tc.Connected)
 47                    {
 48                        tbDetail.Text = tbDetail.Text + "端口" + i.ToString() + "开放。\r\n";
 49                    }
 50                   
 51                }
 52                catch (Exception ex)
 53                {
 54                   
 55                }
 56                finally
 57                {
 58  tc.Close();
 59                    tc = null;
 60                    //修改线程数
 61                    count--;
 62//写入进度  
 63 pbProcess.Value = Convert.ToInt32((Convert.ToDouble(i) / Convert.ToDouble(End)) * 100);
 64                }
 65               
 66            
 67           
 68        }
 69
 70        private void button1_Click(object sender, EventArgs e)
 71        {
 72            Thread tmain = new Thread(new ThreadStart(MainProcess));
 73            tmain.Start();
 74           
 75        }
 76        //主线程
 77        private void MainProcess()
 78        {
 79            count = 0;
 80            pbProcess.Value = 0;
 81            tbDetail.Text = "";
 82 Start = Convert.ToInt32(tbStar.Text);
 83            End = Convert.ToInt32(tbEnd.Text);
 84            //循环取副线程扫描端口
 85            for (i = Start; i < End; i++)
 86            {
 87                count++;
 88               
 89                tdm = new Thread(new ThreadStart(Process));
 90                tdm.Start();
 91                Thread.Sleep(10);
 92                //线程数控制在20
 93                while (count > 20) ;
 94            }
 95           while (count>0) ;
 96            tbDetail.Text = tbDetail.Text+"扫描完成";
 97        }
 98        private void Main_Load(object sender, EventArgs e)
 99        {
100            Control.CheckForIllegalCrossThreadCalls = false;
101        }
102
103       
104    }
105   
106}

转载于:https://www.cnblogs.com/DarkAngel/archive/2006/11/29/576273.html

一个端口扫描的小程序相关推荐

  1. python软件代码示例-用Python写一个模拟qq聊天小程序的代码实例

    Python 超简单的聊天程序 客户端: import socket, sys host = '10.248.27.23' # host = raw_input("Plz imput des ...

  2. 创建一个属于自己的小程序(注册开发账号)

    微信小程序入门指南 一. 如何创建一个属于自己的小程序 首先,需要注册一个小程序开发账号. 使用浏览器打开 https://mp.weixin.qq.com/ 网址,点击右上角的"立即注册& ...

  3. qt给qdialog加一个滚动条_这些小程序技巧,你敢说你一个用不到?

    都是小技巧,废话不多说,上代码! 改变小程序原生组件大小 微信官方提供了一些基本组件,但是有的组件没有提供类似size的属性,我们只需要一个css就可以解决,以radio为例: 小程序picker组件 ...

  4. 能不能用python开发qq_用Python写一个模拟qq聊天小程序的代码实例

    用Python写一个模拟qq聊天小程序的代码实例 发布时间:2020-09-09 07:49:29

  5. 还在想假期去哪玩?直接做一个旅游攻略小程序

    憋了几年好不容易解封准备出去散散心,但看着大江南北这么多景点是不是有点让你选择强迫症呢?那就先制作一个旅游攻略小程序看看驴友们的分享吧.

  6. 一个计算数独的小程序

    一个计算数独的小程序 #include<iostream> #include <string> #include <fstream> #include <cs ...

  7. [日推荐]『TheGolfGame』一个高端大气上档次的小程序

    今天小编再来给大家推荐一个高端大气上档次的小程序 TheGolfGame 简介:The Golf Game是基于高尔夫教学的服务平台,为用户提供最专业的高尔夫教学指导,大量的教学视频,更有娱乐视频,让 ...

  8. 用Python写一个模拟qq聊天小程序的代码实例

    前言 今天小编就为大家分享一篇关于用Python写一个模拟qq聊天小程序的代码实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 Python 超简单的聊天 ...

  9. 肝了两周,我做了一个面试刷题小程序

    大家好,我是poetry.过年放假那段时间没有回去过年,终于有了自己一整块时间做点自己喜欢的事情,大概花了两周时间开发完一个面试刷题小程序的全部功能,今天终于将它上线跟大家见面了. 市面上很多刷题小程 ...

最新文章

  1. 在文件中查找指定字符串
  2. (转)面向对象的 JavaScript 编程:dojo.declare 详解
  3. 2021操作系统知识结构图
  4. 脑电分析系列[MNE-Python-15]| Epochs数据可视化
  5. 【Scratch】青少年蓝桥杯_每日一题_1.9_小猫旅行
  6. Html画布w3c,HTML canvas 标签
  7. Java学习小程序(5)猜数字游戏
  8. 数据分析利器之Pandas
  9. 前端:CSS/13/HTML引入CSS的方法,CSS表格属性,盒子模型,上下外边距合并
  10. 在php 添加时间,在PHP中添加时间
  11. transform用于图像检索
  12. phpstorm设置方法头信息备注
  13. 使用ajax局部更新Razor页面
  14. android 表情识别,基于Android平台的人脸表情识别系统的设计与实现
  15. 【阿圆总结】关于平时阅读的推荐
  16. 机器学习-数据科学库-day6
  17. MATLAB compatloose,麻烦帮忙看下这个视频
  18. videos player.php_基于vue-video-player自定义播放器的方法
  19. FileZilla Server1.5使用入门
  20. 三十、在实践中培养和选拔干部(第1版)

热门文章

  1. kingbase7获取唯一索引和子分区键的view
  2. Black White(尺取)
  3. Golang原生sql操作Mysql数据库增删改查
  4. django类视图简单使用和源码解析
  5. 关于cocoa框架,你所要知道的一切(苹果官方文档,cocoa框架核心竞争力,必须收藏!)...
  6. [iOS Animation]-CALayer 变换
  7. 电子商务网站 数据库产品表设计方案
  8. 一分钟实现纯CSS全屏滚动特效
  9. [Vue.js]实战 -- 电商项目(一)
  10. 详细了解文档对象模型(DOM)