0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TCP client与TCP server该如何与PC端通信

倩倩 来源:AT32 MCU 雅特力科技 作者:AT32 MCU 雅特力科技 2022-08-18 14:49 次阅读

概述

使用TCP执行通讯时,会有Server与Client的差别。Server是经由开启特定的Port来等待来自Client端的连线需求;而Client端则是向Server端提出连线需求,此例程使用LwIP作为协议栈,可以使用tcp_bind(), tcp_listen()与tcp_accept()这三种系统呼叫来使Server端接受Client的连线要求。 本使用指南会分别说明TCP client与TCP server该如何与PC端通信

硬件资源

1) AT-START-F407 V1.0实验板 2) DM9162以太网模块 3) 以太网线

软件资源

tcp_client, TCP client源程序,运行TCP客户端程序

tcp_server, TCP server源程序,运行TCP服务端程序

AT32 TCP client/server程序设置

管脚配置

表1. 管脚配置

0f366a28-1ebb-11ed-ba43-dac502259ad0.png

LwIP设置

硬件资源只提供从PHY到MAC的信号处理,若要进行开发,则需要实作TCP/IP协议栈,在本应用中使用LwIP协议栈,该协议栈主要关注的是怎样减少减少内存的使用和程序代码的大小,这样就可以让LwIP适用于资源有限的小型平台例如嵌入式系统,更详细的内容可以访问官方网站。 由于整个协议栈已经整合到代码中,大部分的内容都无须修改,使用者只要根据自己的网段去设定IP地址及闸口地址即可,这两个全局变量宣告在netconf.c的上头。 图1. 配置芯片的IP地址

0f5251f2-1ebb-11ed-ba43-dac502259ad0.png

TCP client project设置

在初始化LwIP协议栈之后,就可以配置TCP client的应用了,芯片作为客户端是发出请求的一方,所以必须要配置往哪里发送数据,也就是说要知道服务端的socket。所谓的socket就是IP地址加上端口,在代码中我们宣告了几个宏定义代表服务端的socket,可以在tcp_client.h中找到TCP_SERVER_IP跟TCP_SERVER_PORT这两个宏定义,用户可以根据网段跟应用修改这两个宏。 图2. 配置服务端的socket

0f6a2ac0-1ebb-11ed-ba43-dac502259ad0.png

确认网段与服务端一致后,下载代码到芯片上,服务器端会一秒打印一次”tcp client experiment!”,同时LED2, 3, 4也会跟着闪烁。

上位机服务端设置

1) 设定上位机的IP地址、网路屏蔽及闸口,IP地址与闸口需要跟芯片设置在同一个网段下。 2) 打开上位机端的服务器软件,这里使用网路调适助手为例。协议类型选择TCP server,本地IP地址为代码中的TCP_SERVER_IP,本地端口号为代码中的TCP_SERVER_PORT,按下连线即建立连线。 3)连线建立后,会出现以下画面,不断打印来自TCP client的数据。 图3. 设置PC端的IP、网路屏蔽与闸口

0f834334-1ebb-11ed-ba43-dac502259ad0.png

图4. 设置服务器软件

0fa36614-1ebb-11ed-ba43-dac502259ad0.png

图5. 接收TCP client的数据

0fc532ee-1ebb-11ed-ba43-dac502259ad0.png

TCP server project设置

在初始化LwIP协议栈之后,就可以配置TCP server的应用了,芯片作为客户端是接受请求的一方,所以必须要配置在哪里接受数据,也就是说要开个端口给客户端丢数据进来。在代码中我们宣告了一个宏定义代表服务端的端口,可以在tcp_server.h中找到TCP_LOCAL_PORT这个宏定义,用户可以根据应用修改这个宏。 图6. 服务器端口的宏定义

0fd52c9e-1ebb-11ed-ba43-dac502259ad0.png

上位机客户端设置

1) 设定上位机的IP地址、网路屏蔽及闸口,IP地址与闸口需要跟芯片设置在同一个网段下,请参考图3。 2) 打开上位机端的服务器软件,这里使用网路调适助手为例。协议类型选择TCP client,服务器IP地址为芯片的IP地址,本地端口号为代码中的TCP_LOCAL_PORT,按下连线即建立连线。 3) 此时会出现讯息在视窗中,可以透过调试助手下方的区块输入字符串发送给服务器,服务器会响应输入的字符串到视窗中。 图7. 设置上位机的客户端软件

0fe4a0a2-1ebb-11ed-ba43-dac502259ad0.png

图8. 显示讯息到视窗中并响应发送的字符串

0ff6a036-1ebb-11ed-ba43-dac502259ad0.png

关于雅特力 雅特力科技于2016年成立,是一家致力于推动全球市场32位微控制器(MCU)创新趋势的芯片设计公司,专注于ARM Cortex-M4/M0+的32位微控制器研发与创新,全系列采用55nm先进工艺及ARM Cortex-M4高效能或M0+低功耗内核,缔造M4业界最高主频288MHz运算效能,并支持工业级别芯片工作温度范围(-40°~105°)。 雅特力目前已累积相当多元的终端产品成功案例:如微型打印机、扫地机、光流无人机、热成像仪、激光雷达、工业缝纫机、伺服驱控、电竞周边市场、断路器、ADAS、T-BOX、数字电源、电动工具等终端设备应用,广泛地覆盖5G物联网、消费、商务及工控等领域。
审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    40

    文章

    5078

    浏览量

    166240
  • 信号处理
    +关注

    关注

    47

    文章

    855

    浏览量

    102542
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1272

    浏览量

    78301

原文标题:AT32讲堂023 | AT32 MCU TCP client与TCP server如何与PC端通信

文章出处:【微信号:AT32 MCU 雅特力科技,微信公众号:AT32 MCU 雅特力科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    TCP的长连接和短连接

    TCP在真正开始进行数据传输之前,ServerClient 之间必须建立一个连接。当数据传输完成后,双方不再需要这个连接时,就可以释放这个连接。 TCP连接的建立是通过三次握手,
    的头像 发表于 11-13 10:46 524次阅读

    TCP通信过程详解

    TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,serverclient之间必须建立一个连接,当读写操作完成后,双方不再需
    的头像 发表于 11-09 14:39 412次阅读
    <b class='flag-5'>TCP</b><b class='flag-5'>通信</b>过程详解

    S7-1200集成PN接口MODBUS TCP通信概述

    软件 STEP7 V11 SP1版本开始,S7-1200CPU 从Firmware V1.0.2开始,不再需要安装Modbus TCP的库文件,可以直接调用Modbus TCP的库指令“MB_CLIENT”和“MB_
    的头像 发表于 10-29 17:24 4639次阅读
    S7-1200集成PN接口MODBUS <b class='flag-5'>TCP</b><b class='flag-5'>通信</b>概述

    TCP连接建立中的异常

        建连接时SYN超时问题 如果 server 端因为某种情况没有收到 client 回来的 ACK,那么,这个连接处还处于一个未建立的状态。于是,server端如果在一定时间内没有收到
    的头像 发表于 10-08 17:01 528次阅读

    分享一种很简单的不阻塞TCP发送方法

    最近在做一个功能的时候,要求将采集到的数据发送到TCP Server上,TCP Server有时候可能会出问题连接不上,这时候如果使用普通的TCP
    的头像 发表于 09-20 14:23 394次阅读

    服务器Server和客户端Client有哪些区别呢?

    例如在使用TCP通讯建立连接时采用客户端服务器模式,这种模式又常常被称为主从式架构,简称为C/S结构,属于一种网络通讯架构,将通讯的双方以客户端(Client )与服务器 (Server) 的身份区分开来。使用C/S结构的
    的头像 发表于 09-06 16:14 807次阅读
    服务器<b class='flag-5'>Server</b>和客户端<b class='flag-5'>Client</b>有哪些区别呢?

    服务器Server和客户端Client的区别

    例如在使用TCP通讯建立连接时采用客户端服务器模式,这种模式又常常被称为主从式架构,简称为C/S结构,属于一种网络通讯架构,将通讯的双方以客户端(Client )与服务器 (Server) 的身份区分开来。使用C/S结构的
    的头像 发表于 09-06 16:13 788次阅读
    服务器<b class='flag-5'>Server</b>和客户端<b class='flag-5'>Client</b>的区别

    使用uIP TCP/IP堆叠的TCP客户实例

    应用程序:使用 uIP TCP/IP 堆叠的 TCP 客户实例 BSP 版本: M480系列 BSP CMSIS v3.03.001 硬件: NuMaker-PFM-M487 VER 3.0
    发表于 08-22 07:47

    【EsDA 应用】Modbus RTU Master 转 TCP Client

    随着物联网技术蓬勃发展,Modbus设备数据采集上报需求日益增加,本文将具体介绍如何利用EsDA快速实现Modbus RTU Master数据转TCP Client数据,缩短产品研发时间
    的头像 发表于 08-09 11:45 401次阅读
    【EsDA 应用】Modbus RTU Master 转 <b class='flag-5'>TCP</b> <b class='flag-5'>Client</b>

    串口服务器——TCP Server

    如何让自动化领域的串口设备具备联网能力?本文将基于EsDA平台,带你开发一个串口服务器之TCP服务器的业务,快速实现串口联网功能。简介随着物联网技术的发展,串口通信TCP/IP通信
    的头像 发表于 07-31 17:58 1075次阅读
    串口服务器——<b class='flag-5'>TCP</b> <b class='flag-5'>Server</b>

    S7-1500做服务器端与三方设备的TCP通信

    专用功能块与其它设备建立 TCP 连接以实现通信。介绍 S7-1500 CPU 作为 TCP 服务器与 PC 进行 TCP
    的头像 发表于 07-24 15:40 1434次阅读
    S7-1500做服务器端与三方设备的<b class='flag-5'>TCP</b><b class='flag-5'>通信</b>

    【EsDA协议转换】Modbus TCP Master转TCP Client

    实施IIoT,协议转换在某些场合下必不可少。本文介绍如何通过EsDA开发套件,快速完成一个Modbus TCP Master转TCP Client的协议转换器。    简介 IIoT
    的头像 发表于 06-08 17:05 313次阅读
    【EsDA协议转换】Modbus <b class='flag-5'>TCP</b> Master转<b class='flag-5'>TCP</b> <b class='flag-5'>Client</b>

    请问wifi转can如何使用TCP client模式呢?

    请问wifi转can如何使用TCP client模式呢?
    发表于 05-17 15:57

    服务器和客户之间的TCP通信丢失怎么处理?

    嗨, 当 WiFi 信号变低时,比如超过 -80dBm,我面临服务器和客户之间的 TCP 通信丢失。一旦客户断开连接,它就无法重新连接并正常进行
    发表于 05-16 08:19

    TCP通信UDP通信串口通信C#上位机

    一、TCP通信上位机 1:作为TCP client,连接server指定端口获取数据2:数据解析显示,曲线显示,数据存储,历史数据显示,远程
    发表于 05-08 10:39 2次下载
    <b class='flag-5'>TCP</b><b class='flag-5'>通信</b>UDP<b class='flag-5'>通信</b>串口<b class='flag-5'>通信</b>C#上位机