19-ESP8266 SDK开发基础入门篇--C# TCP客户端编写 , 连接和断开

Posted yangfengwu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了19-ESP8266 SDK开发基础入门篇--C# TCP客户端编写 , 连接和断开相关的知识,希望对你有一定的参考价值。

https://www.cnblogs.com/yangfengwu/p/11130428.html

 

渐渐的看过去,,,好多节了...

技术图片

 

这节做一个C# TCP客户端

新建项目啥子的就不详细截图写了,自行看前面了解 (我的文章只要是有序号的,必须要看前面,因为我所写的教程即是基础又是综合)

技术图片

 

 

 技术图片

 

先做个这个页面,先做连接和断开

技术图片

技术图片

 

 

链接TCP用这个变量

 技术图片

 

其实连接TCP 几句就完了

技术图片

 

 我定义了一个函数是因为,其实连接时阻塞的,,所以咱需要开个任务

C# 的任务是这样用

技术图片

 

 

 OK  现在测试

由于我是用的台式机,,没有无线网卡,,,所以不能连接WiFi模块了...

我用本机的调试助手测试

技术图片

 

 

 技术图片

 

 

 技术图片

 

 

 技术图片

 

技术图片

 

 

 启动

 

 技术图片

 

 技术图片

 

 

 好现在咱用按钮控制连接和断开

 

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

namespace TCPClient

    public partial class Form1 : Form
    
        private TcpClient myTcpClient = null;// TcpClient

        Thread ConnectThread;//连接线程
        public Form1()
        
            InitializeComponent();
        

        private void Form1_Load(object sender, EventArgs e)
        
            
        


        private void ConnectMethod()
        
            myTcpClient = new TcpClient();                      //实例化myTcpClient
            try
            
                myTcpClient.Connect("192.168.1.2", 60000);//连接服务器
                //连接上以后往下执行
                Invoke((new Action(() => 
                
                    button1.Text = "断开";
                )));
            
            catch (Exception)
            
                //异常处理函数
                Invoke((new Action(() =>
                
                    button1.Text = "连接";
                )));
                try  myTcpClient.Close(); catch   //关闭连接
            
        


        //连接和断开按钮
        private void button1_Click(object sender, EventArgs e)
        
            if (button1.Text == "连接")
            
                ConnectThread = new Thread(ConnectMethod);//创建任务
                ConnectThread.Start();//启动任务
            
            else
            
                try  myTcpClient.Close();  catch   //关闭连接
                Invoke((new Action(() =>
                
                    button1.Text = "连接";
                )));
            
        
    

 

 

 

测试

技术图片

 

 

 技术图片

 

 接着用上

技术图片

 

 首先做个功能,,一开始IP 那个下拉框,显示出来电脑的IP  ,,下拉的时候也刷新下显示

 

/// <获取本机 IP 地址>
        /// 
        /// </summary>
        /// <returns></returns>
        private void getIPAddress()
        
            IPAddress[] hostipspool = Dns.GetHostAddresses("");//获取本机所以IP
            comboBox1.Items.Clear();//清除下拉框里面的内容
            foreach (IPAddress ipa in hostipspool)
            
                if (ipa.AddressFamily == AddressFamily.InterNetwork)
                
                    comboBox1.Items.Add(ipa.ToString());//下拉框加入IP数据
                    comboBox1.SelectedIndex = comboBox1.Items.Count > 0 ? 0 : -1;//显示第一个
                
            
        

 

然后是下拉事件

技术图片

 

 

 技术图片

技术图片

 

 

namespace TCPClient

    public partial class Form1 : Form
    
        private TcpClient myTcpClient = null;// TcpClient

        Thread ConnectThread;//连接线程
        public Form1()
        
            InitializeComponent();
        

        private void Form1_Load(object sender, EventArgs e)
        
            getIPAddress();//刚才写的那个函数.获取电脑IP,并显示在下拉框
        


        /// <获取本机 IP 地址>
        /// 
        /// </summary>
        /// <returns></returns>
        private void getIPAddress()
        
            IPAddress[] hostipspool = Dns.GetHostAddresses("");//获取本机所以IP
            comboBox1.Items.Clear();//清除下拉框里面的内容
            foreach (IPAddress ipa in hostipspool)
            
                if (ipa.AddressFamily == AddressFamily.InterNetwork)
                
                    comboBox1.Items.Add(ipa.ToString());//下拉框加入IP数据
                    comboBox1.SelectedIndex = comboBox1.Items.Count > 0 ? 0 : -1;//显示第一个
                
            
        


        private void ConnectMethod()
        
            myTcpClient = new TcpClient();                      //实例化myTcpClient
            try
            
                myTcpClient.Connect("192.168.1.2", 60000);//连接服务器
                //连接上以后往下执行
                Invoke((new Action(() => 
                
                    button1.Text = "断开";
                )));
            
            catch (Exception)
            
                //异常处理函数
                Invoke((new Action(() =>
                
                    button1.Text = "连接";
                )));
                try  myTcpClient.Close(); catch   //关闭连接
            
        


        //连接和断开按钮
        private void button1_Click(object sender, EventArgs e)
        
            if (button1.Text == "连接")
            
                ConnectThread = new Thread(ConnectMethod);//创建任务
                ConnectThread.Start();//启动任务
            
            else
            
                try  myTcpClient.Close();  catch   //关闭连接
                Invoke((new Action(() =>
                
                    button1.Text = "连接";
                )));
            
        

        private void comboBox1_DropDown(object sender, EventArgs e)
        
            getIPAddress();//刚才写的那个函数
        
    

 

 

 

测试

技术图片

 

 技术图片

 

好,,彻底做做成动态的

 技术图片

 

 

 

 技术图片

 

 

 

 技术图片

 

 测试

技术图片

 

 技术图片

 

 

https://www.cnblogs.com/yangfengwu/p/11192603.html

 

以上是关于19-ESP8266 SDK开发基础入门篇--C# TCP客户端编写 , 连接和断开的主要内容,如果未能解决你的问题,请参考以下文章

21-ESP8266 SDK开发基础入门篇--C# TCP客户端 , 控制LED亮灭

6-ESP8266 SDK开发基础入门篇--操作系统入门使用

12-ESP8266 SDK开发基础入门篇--PWM,呼吸灯

7-ESP8266 SDK开发基础入门篇--串口处理数据,控制LED

26-ESP8266 SDK开发基础入门篇--编写WIFI模块 SmartConfig/Airkiss 一键配网

28-ESP8266 SDK开发基础入门篇--编写TCP 客户端程序(官方API版,非RTOS版)