文章图片
文章图片
文章图片
文章图片
1 程序界面设计
TCP客户端在上位机开发中应用很广 , 大多数情况下 , 上位机软件都是作为一个TCP客户端来与PLC或其他服务器进行通信的 。 TCP客户端的主要功能就是连接服务器、发送数据、接收数据、断开连接 , 而不同场合的区别在于发送数据和接收数据的内容不同 。
本案例主要是开发一个TCP客户端软件 , 具备基本的连接功能 , 并可以发送ASCII、UTF8等不同格式的字符串 , 也支持发送16进制字符串发送 , 同时支持文件和JSON格式数据发送 。 根据以上功能 , 设计程序界面如下图所示:
2 程序代码设计
- 接收信息显示:首先编写一个接收信息显示的方法 , 这里是通过ListView来展示接收信息的 。
- 连接服务器:连接服务器首先实例化Socket对象 , 然后通过调用Connect的方法来实现 , 连接成功后 , 开启一个线程来接收服务器返回的数据 , 具体代码如下:
- 断开连接服务器:断开连接服务器直接调用Socket的相关API方法即可 。
- 接收数据:对于数据接收及解析 , 由于本案例的客户端软件支持多种不同形式数据发送 , 那么接收必然也支持多种形式 , 那么对于不同的形式 , 我们创建了一个枚举类型 , 这样方便后续扩展 , 代码如下所示:
- 因此在数据接收处理时 , 我们用第一个字节作为类型判断 , 比如第一个字节如果为0 , 那么则认为接收的数据为ASCII字符串 , 也将按照这种形式来进行解析 , 从第二个字节开始一直到最后 , 是有效数据部分 , 所以数据接收及解析方法如下所示:
- 发送ASCII字符串:对于ASCII字符串 , 首先要将发送的字符串按照ASCII的编码格式转换成字节数组 , 然后给这个字节数组前面增加一个字节 , 字节数值为Message.ASCII , 代码如下所示:
- 发送文件:发送文件之前首先要选择文件 , 选择文件主要使用OpenFileDialog组件 , 代码如下:
- 选择文件之后 , 发送文件就是将选择的文件内容转换成字节数组 , 然后给这个字节数组前面增加一个字节 , 字节数值为Message.File , 这里会发送两次 , 第一次是发送一个字符串 , 告诉服务器要发送的文件名称 , 采用的是UTF8编码 , 代码如下所示:
- 客户端|阿里云又一业务居第一,成冬奥会转播平台,马云100亿投资没白费
- 本文转自:周到客户端聚焦“稳中求进开好局”|爱申活暖心春丨计划引进60家企业,抢占智能传感器产业新赛道
- 本文转自:文汇客户端热不仅会扩散|再登《科学》!潘建伟团队首次测得神秘“第二声”衰减率,这种波动来自你天天接触的它……
- 本文转自:浙江日报浙江新闻客户端 记者 徐坊 共享联盟南太湖新区站 王家慧 田雯刚刚|“南太湖新区制造”的LED显示屏亮相北京冬奥会
- 本文转自:文汇客户端今天|惊叹!奥运史上首次机器人水下传递火炬,这是怎么实现的
- 本文转自:中国蓝新闻来源 | 中国蓝新闻客户端编辑 | 程晨责编 | 王川...|春节防疫“三件套”,请收好!
- 本文转自:长城网长城网·冀云客户端记者 张谢雅 张晓明 吴玉秒 李皓 王棋2022年北京...|冬奥看“新”丨保障冬奥通信的“秘密武器”
- 客户端|降至1858元,屏下镜头+骁龙870,功夫巨星吴京代言
- 本文转自:央视新闻客户端今天(2月2日)是北京2022冬奥会火炬传递的第一天|北京冬奥会火炬手丨“人民科学家”叶培建:中国航天要像火炬接力一样不断
- 本文转自:浙江日报浙江新闻客户端 记者 沈烨婷 共享联盟海宁站 朱文“穿上这双鞋|运动鞋也能加热!海宁“黑科技”为冬奥会中国健儿助力