TCP编程端口扫描器和网游客户端(网络编程)

本文介绍了如何使用TCP编程实现一个端口扫描器,包括单线程和多线程版本,并详细讲解了如何在VS2017中创建网游客户端,包括连接服务器、收发消息、播放背景音乐和变换背景图片的功能。
摘要由CSDN通过智能技术生成

本次实验,博主将使用TCP来编写一个端口扫描器以及制作一个网游的客户端

1. 编写端口扫描器程序

1.1编程一个单线程端口扫描器

首先,打开VS2017,点击文件–>新建–>项目,选择Windows窗口应用,创建一个带界面的应用程序。
在这里插入图片描述
其次,进入窗口设计页面,现在的窗口应该是空白的一片,从工具栏中选择Label,TextBox,ProgressBar这三个类型的工具若干(如果没有工具箱,可以从视图-- >工具箱召唤出工具栏),在此介绍一下所用各工具的用处。

Label:为控件提供运行时的信息或者信息说明
TextBox:允许用户输入文本,或者输出文本(用作输入密码时可用字符掩码功能)
ProgressBar:显示一个向用户显示操作进程的填充条,俗称进度条。

按照以前所用的应用的大致界面,歪歪扭扭拼凑了一个简易的端口扫描器界面出来。
在这里插入图片描述
拼凑好后,将老师所给的代码经过修饰后加入进程序中(可双击控件召唤出编程界面)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net.Sockets;
using System.Threading;

namespace Port_Scanning
{
   
    public partial class Form1 : Form
    {
   
        public Form1()
        {
   
            InitializeComponent();
            //不进行跨线程检查
            CheckForIllegalCrossThreadCalls = false;
        }

        //主机地址
        private string hostAddress;
        //起始端口
        private int start;
        //终止端口
        private int end;
        //端口号
        private int port;
        //定义线程对象
        private Thread scanThread;
        //定义端口状态数据(开放则为true,否则为false)
        private bool[] done = new bool[65526];
        private bool OK;

        private void button1_Click(object sender, EventArgs e)
        {
   
            try
            {
   
                //初始化
                textBox4.Clear();
                label5.Text = "0%";
                //获取ip地址和始末端口号
                hostAddress = textBox1.Text;
                start = Int32.Parse(textBox2.Text);
                end = Int32.Parse(textBox3.Text);
                if (decideAddress())
                {
   
                    textBox1.ReadOnly = true;
                    textBox2.ReadOnly = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值