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", );//连接服务器
//连接上以后往下执行
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 > ? : -;//显示第一个
}
}
}

然后是下拉事件

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 > ? : -;//显示第一个
}
}
} private void ConnectMethod()
{
myTcpClient = new TcpClient(); //实例化myTcpClient
try
{
myTcpClient.Connect("192.168.1.2", );//连接服务器
//连接上以后往下执行
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客户端编写 , 连接和断开的更多相关文章

  1. 20-ESP8266 SDK开发基础入门篇--C# TCP客户端编写 , 加入数据通信

    https://www.cnblogs.com/yangfengwu/p/11192594.html 自行调整页面 连接上以后主动发个数据 namespace TCPClient { public p ...

  2. 24-ESP8266 SDK开发基础入门篇--Android TCP客户端.控制 Wi-Fi输出PWM的占空比,调节LED亮度

    https://www.cnblogs.com/yangfengwu/p/11204436.html 刚才有人说需要点鸡汤.... 我想想哈;我还没问关于哪方面的鸡汤呢!!! 我所一直走的路线 第一: ...

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

    https://www.cnblogs.com/yangfengwu/p/11192603.html 由于是台式机,,没有插无线网卡...所以呢我就用调试助手监控下数据 后期让WIFI连接路由器的时候 ...

  4. 1-ESP8266 SDK开发基础入门篇--开发环境搭建

    因为今天终于做好了自己的另一块工控板,所以我就开始写基础公开篇的内容,希望自己小小的努力能够帮到大家 自己做的另一块板子 https://www.cnblogs.com/yangfengwu/cate ...

  5. 25-ESP8266 SDK开发基础入门篇--控制WIFI连接路由器

    https://www.cnblogs.com/yangfengwu/p/11324411.html 说个事情,现在SDK的版本已经出到3.0了,但是我还是使用2.0 如果只是为了学习研究   选择3 ...

  6. 29-ESP8266 SDK开发基础入门篇--编写TCP 客户端程序(Lwip RAW模式,非RTOS版,精简入门)

    https://www.cnblogs.com/yangfengwu/p/11456667.html 由于上一节的源码长时间以后会自动断开,所以再做这一版非RTOS版的,咱直接用lua源码里面别人写的 ...

  7. 18-ESP8266 SDK开发基础入门篇--TCP 服务器 RTOS版,串口透传,TCP客户端控制LED

    https://www.cnblogs.com/yangfengwu/p/11112015.html 先规定一下协议 aa 55 02 01 F1 4C 控制LED点亮  F1 4C为CRC高位和低位 ...

  8. 16-ESP8266 SDK开发基础入门篇--TCP 服务器 非RTOS运行版,串口透传(串口回调函数处理版)

    https://www.cnblogs.com/yangfengwu/p/11105466.html 其实官方给的RTOS的版本就是在原先非RTOS版本上增加的 https://www.cnblogs ...

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

    https://www.cnblogs.com/yangfengwu/p/11432795.html 注:这节实现的功能是WIFI模块作为TCP 客户端,连接咱的TCP服务器,然后实现透传 本来想着做 ...

随机推荐

  1. 2019 易车java面试笔试题 (含面试题解析)

    本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.易车等公司offer,岗位是Java后端开发,最终选择去了易车. 面试了很多家公司,感觉大部分公司考察的点都差不多 ...

  2. SpringDataRedis

    一.简介 1.SpringData和Redis Redis将数据存储到内存的,速度快.可以解决请求mysql数据库过多而导致mysql崩溃的问题. SpringData是专门用来控制Redis的工具, ...

  3. shell编程必须要掌握的命令-xargs

    一,说xargs命令前,说一下什么是shell编程 什么是shell编程呢,说白了就是按一定的规则把各种命令组织起来,完成一定的事情.纯属个人理解,哈哈.不管是交互式的shell,还是非交互的shel ...

  4. python pip安装解决方法

    一招解决python pip install 安装库失败   PIP是python强大的安装利器,但是我们经常遇到安装库失败的问题,以下本人觉得最有效的解决方法: 1.打开 https://www.l ...

  5. javascript ~~ 符号是什么意思呢?

    ~ bitwise NOT 运算符 ~对操作数按位取反,两个的意思即作两次取反操作,其实是等作原数本身(操作数是32整数范围内) ~~(Math.random()*7) 即 var n = Math. ...

  6. node连接Mysql报错ER_NOT_SUPPORTED_AUTH_MODE

    报错信息 本人系统安装的是mysql-installer-community-8.0.18.0.msi这个版本,然后我本地使用node-mysql去连接数据库. test.js文件 var mysql ...

  7. 简单后台管理系统框架--HTML练手项目2【Frameset】

    [本文为原创,转载请注明出处] 技术[HTML]   布局[Frameset] 无步骤 <!DOCTYPE html> <html lang="en"> & ...

  8. Spring框架的核心概念是什么?需要掌握的知识点都有哪些?

    Spring其主要精髓 就是IOC和AOP.掌握好了这两点对于理解Spring的思想颇有意义. IOC(英文 Inversion of Control)就是控制反转的意思.就是把新建对象(new Ob ...

  9. TF-IDF词频逆文档频率算法

    一.简介 1.RF-IDF[term frequency-inverse document frequency]是一种用于检索与探究的常用加权技术. 2.TF-IDF是一种统计方法,用于评估一个词对于 ...

  10. 【故障解决】enq: PS - contention

    [故障解决]enq: PS - contention 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能, ...