0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TCP client與TCP server該如何與PC端通信

倩倩 ? 來源:AT32 MCU 雅特力科技 ? 作者:AT32 MCU 雅特力科技 ? 2022-08-18 14:49 ? 次閱讀

概述

使用TCP執(zhí)行通訊時(shí),會有Server與Client的差別。Server是經(jīng)由開啟特定的Port來等待來自Client端的連線需求;而Client端則是向Server端提出連線需求,此例程使用LwIP作為協(xié)議棧,可以使用tcp_bind(), tcp_listen()與tcp_accept()這三種系統(tǒng)呼叫來使Server端接受Client的連線要求。 本使用指南會分別說明TCP client與TCP server該如何與PC端通信

硬件資源

1) AT-START-F407 V1.0實(shí)驗(yàn)板 2) DM9162以太網(wǎng)模塊 3) 以太網(wǎng)線

軟件資源

tcp_client, TCP client源程序,運(yùn)行TCP客戶端程序

tcp_server, TCP server源程序,運(yùn)行TCP服務(wù)端程序

AT32 TCP client/server程序設(shè)置

管腳配置

表1. 管腳配置

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

LwIP設(shè)置

硬件資源只提供從PHY到MAC的信號處理,若要進(jìn)行開發(fā),則需要實(shí)作TCP/IP協(xié)議棧,在本應(yīng)用中使用LwIP協(xié)議棧,該協(xié)議棧主要關(guān)注的是怎樣減少減少內(nèi)存的使用和程序代碼的大小,這樣就可以讓LwIP適用于資源有限的小型平臺例如嵌入式系統(tǒng),更詳細(xì)的內(nèi)容可以訪問官方網(wǎng)站。 由于整個(gè)協(xié)議棧已經(jīng)整合到代碼中,大部分的內(nèi)容都無須修改,使用者只要根據(jù)自己的網(wǎng)段去設(shè)定IP地址及閘口地址即可,這兩個(gè)全局變量宣告在netconf.c的上頭。 圖1. 配置芯片的IP地址

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

TCP client project設(shè)置

在初始化LwIP協(xié)議棧之后,就可以配置TCP client的應(yīng)用了,芯片作為客戶端是發(fā)出請求的一方,所以必須要配置往哪里發(fā)送數(shù)據(jù),也就是說要知道服務(wù)端的socket。所謂的socket就是IP地址加上端口,在代碼中我們宣告了幾個(gè)宏定義代表服務(wù)端的socket,可以在tcp_client.h中找到TCP_SERVER_IP跟TCP_SERVER_PORT這兩個(gè)宏定義,用戶可以根據(jù)網(wǎng)段跟應(yīng)用修改這兩個(gè)宏。 圖2. 配置服務(wù)端的socket

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

確認(rèn)網(wǎng)段與服務(wù)端一致后,下載代碼到芯片上,服務(wù)器端會一秒打印一次”tcp client experiment!”,同時(shí)LED2, 3, 4也會跟著閃爍。

上位機(jī)服務(wù)端設(shè)置

1) 設(shè)定上位機(jī)的IP地址、網(wǎng)路屏蔽及閘口,IP地址與閘口需要跟芯片設(shè)置在同一個(gè)網(wǎng)段下。 2) 打開上位機(jī)端的服務(wù)器軟件,這里使用網(wǎng)路調(diào)適助手為例。協(xié)議類型選擇TCP server,本地IP地址為代碼中的TCP_SERVER_IP,本地端口號為代碼中的TCP_SERVER_PORT,按下連線即建立連線。 3)連線建立后,會出現(xiàn)以下畫面,不斷打印來自TCP client的數(shù)據(jù)。 圖3. 設(shè)置PC端的IP、網(wǎng)路屏蔽與閘口

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

圖4. 設(shè)置服務(wù)器軟件

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

圖5. 接收TCP client的數(shù)據(jù)

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

TCP server project設(shè)置

在初始化LwIP協(xié)議棧之后,就可以配置TCP server的應(yīng)用了,芯片作為客戶端是接受請求的一方,所以必須要配置在哪里接受數(shù)據(jù),也就是說要開個(gè)端口給客戶端丟數(shù)據(jù)進(jìn)來。在代碼中我們宣告了一個(gè)宏定義代表服務(wù)端的端口,可以在tcp_server.h中找到TCP_LOCAL_PORT這個(gè)宏定義,用戶可以根據(jù)應(yīng)用修改這個(gè)宏。 圖6. 服務(wù)器端口的宏定義

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

上位機(jī)客戶端設(shè)置

1) 設(shè)定上位機(jī)的IP地址、網(wǎng)路屏蔽及閘口,IP地址與閘口需要跟芯片設(shè)置在同一個(gè)網(wǎng)段下,請參考圖3。 2) 打開上位機(jī)端的服務(wù)器軟件,這里使用網(wǎng)路調(diào)適助手為例。協(xié)議類型選擇TCP client,服務(wù)器IP地址為芯片的IP地址,本地端口號為代碼中的TCP_LOCAL_PORT,按下連線即建立連線。 3) 此時(shí)會出現(xiàn)訊息在視窗中,可以透過調(diào)試助手下方的區(qū)塊輸入字符串發(fā)送給服務(wù)器,服務(wù)器會響應(yīng)輸入的字符串到視窗中。 圖7. 設(shè)置上位機(jī)的客戶端軟件

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

圖8. 顯示訊息到視窗中并響應(yīng)發(fā)送的字符串

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

關(guān)于雅特力 雅特力科技于2016年成立,是一家致力于推動全球市場32位微控制器(MCU)創(chuàng)新趨勢的芯片設(shè)計(jì)公司,專注于ARM Cortex-M4/M0+的32位微控制器研發(fā)與創(chuàng)新,全系列采用55nm先進(jìn)工藝及ARM Cortex-M4高效能或M0+低功耗內(nèi)核,締造M4業(yè)界最高主頻288MHz運(yùn)算效能,并支持工業(yè)級別芯片工作溫度范圍(-40°~105°)。 雅特力目前已累積相當(dāng)多元的終端產(chǎn)品成功案例:如微型打印機(jī)、掃地機(jī)、光流無人機(jī)、熱成像儀、激光雷達(dá)、工業(yè)縫紉機(jī)、伺服驅(qū)控、電競周邊市場、斷路器、ADAS、T-BOX、數(shù)字電源、電動工具等終端設(shè)備應(yīng)用,廣泛地覆蓋5G、物聯(lián)網(wǎng)、消費(fèi)、商務(wù)及工控等領(lǐng)域。
審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    40

    文章

    5288

    瀏覽量

    169686
  • 信號處理
    +關(guān)注

    關(guān)注

    48

    文章

    969

    瀏覽量

    102991
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1324

    瀏覽量

    78759

原文標(biāo)題:AT32講堂023 | AT32 MCU TCP client與TCP server如何與PC端通信

文章出處:【微信號:AT32 MCU 雅特力科技,微信公眾號:AT32 MCU 雅特力科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    RTOS V1.4版本SDK作為TCP Server沒有調(diào)用斷開連接的回調(diào)函數(shù),為什么?

    硬件環(huán)境是:ESP-12F, 軟件環(huán)境是:RTOS V1.4版本 問題描述: 模塊作為STA,socket為TCP Server,當(dāng)TCP Client連接到模塊的
    發(fā)表于 07-18 08:31

    ESP8266作Client建立TCP連接出現(xiàn)報(bào)錯(cuò)?

    請教下,ESP8266作Client建立TCP連接,出現(xiàn)錯(cuò)誤 是按照《4B-ESP8266__AT Command Examples__CN_v1.3》文檔上操作的 AT+CIPSTART
    發(fā)表于 07-17 07:16

    是否可以通過TCP連接發(fā)送AT命令?

    ;lt;-------------> iot embedded module 服務(wù)器可以通過活動的TCP連接向wifi模塊發(fā)送AT命令嗎?例如,用例..我想通過 wifi 重置 ESP 模塊 ESP - TCP 客戶
    發(fā)表于 07-17 06:17

    Labview Tcp Server one to many client(TCP調(diào)試助手服務(wù)

    一直想自己做一個(gè)TCP調(diào)試助手,苦于能力有限,終于簡單的功能讓我給實(shí)現(xiàn)了,還請大家?guī)兔纯矗赋霾蛔?,謝謝 界面未作設(shè)計(jì),控件簡單的放上去,有美工的同學(xué)可以幫忙做界面嗎? 有客戶連接,ip地址
    發(fā)表于 07-14 19:56

    請問esp8266 rtos sdk能否同時(shí)啟動tcp socke clent和udp server?

    我在用的是V1.5的rtos 的sdk,想在esp8266上同時(shí)啟動tcp的socket client和udp的socket server。 但是我發(fā)現(xiàn),只要我一啟動upd server
    發(fā)表于 07-12 07:07

    如何同時(shí)在ESP8266上運(yùn)行TCP客戶TCP服務(wù)?

    我們是 esp8266 的長期用戶,并在芯片上運(yùn)行數(shù)千臺家庭自動化類別的現(xiàn)場設(shè)備。然而,一個(gè)小小的限制阻礙了我們開發(fā)一些更有趣和創(chuàng)新的產(chǎn)品。 要求:我們需要同時(shí)運(yùn)行 TCP 客戶(連接
    發(fā)表于 07-08 08:26

    TCP_server例程斷開再次連接會失敗怎么處理?

    使用了TCP_server的例程,發(fā)現(xiàn)當(dāng)電腦作為客戶端去連接esp32(服務(wù)器)斷開連接之后再次連接時(shí)候連不上,發(fā)現(xiàn):提示已經(jīng)連接上esp32發(fā)出的熱點(diǎn),但是網(wǎng)絡(luò)助手顯示連接失?。ūO(jiān)聽串口失敗
    發(fā)表于 06-28 06:49

    無線模塊通過TCP/IP協(xié)議實(shí)現(xiàn)與PC的數(shù)據(jù)傳輸解析

    在當(dāng)今的信息時(shí)代,無線通信技術(shù)的發(fā)展日新月異,為我們的工作和生活帶來了極大的便利。其中,無線通信模塊通過TCP/IP協(xié)議向PC傳送數(shù)據(jù)已經(jīng)
    的頭像 發(fā)表于 06-15 16:16 ?288次閱讀

    無線通信模塊通過TCP/IP協(xié)議實(shí)現(xiàn)與PC的數(shù)據(jù)傳輸

    在當(dāng)今的信息時(shí)代,無線通信技術(shù)的發(fā)展日新月異,為我們的工作和生活帶來了極大的便利。其中,無線通信模塊通過TCP/IP協(xié)議向PC傳送數(shù)據(jù)已經(jīng)
    的頭像 發(fā)表于 05-11 15:44 ?396次閱讀

    TCP與UDP的基本區(qū)別

    順序,UDP不保證 UDP應(yīng)用場景: 面向數(shù)據(jù)報(bào)方式 網(wǎng)絡(luò)數(shù)據(jù)大多為短消息 擁有大量Client 對數(shù)據(jù)安全性無特殊要求 網(wǎng)絡(luò)負(fù)擔(dān)非常重,但對響應(yīng)速度要求高 TCP報(bào)頭 UDP報(bào)頭 TCP三次握手
    的頭像 發(fā)表于 11-13 15:27 ?4399次閱讀
    <b class='flag-5'>TCP</b>與UDP的基本區(qū)別

    TCP的長連接和短連接

    TCP在真正開始進(jìn)行數(shù)據(jù)傳輸之前,ServerClient 之間必須建立一個(gè)連接。當(dāng)數(shù)據(jù)傳輸完成后,雙方不再需要這個(gè)連接時(shí),就可以釋放這個(gè)連接。 TCP連接的建立是通過三次握手,
    的頭像 發(fā)表于 11-13 10:46 ?855次閱讀

    TCP通信過程詳解

    TCP連接 當(dāng)網(wǎng)絡(luò)通信時(shí)采用TCP協(xié)議時(shí),在真正的讀寫操作之前,serverclient之間必須建立一個(gè)連接,當(dāng)讀寫操作完成后,雙方不再需
    的頭像 發(fā)表于 11-09 14:39 ?950次閱讀
    <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的庫文件,可以直接調(diào)用Modbus TCP的庫指令“MB_CLIENT”和“MB_
    的頭像 發(fā)表于 10-29 17:24 ?6060次閱讀
    S7-1200集成PN接口MODBUS <b class='flag-5'>TCP</b><b class='flag-5'>通信</b>概述

    TCP連接建立中的異常

    ? ? 建連接時(shí)SYN超時(shí)問題 如果 server 因?yàn)槟撤N情況沒有收到 client 回來的 ACK,那么,這個(gè)連接處還處于一個(gè)未建立的狀態(tài)。于是,server
    的頭像 發(fā)表于 10-08 17:01 ?702次閱讀

    Anydesk--如何建立TCP通道

    使用AnyDesk的TCP通道是為了在本地和遠(yuǎn)程客戶之間轉(zhuǎn)發(fā)任何基于TCP的協(xié)議,以便本地客戶訪問遠(yuǎn)程客戶可以訪問的服務(wù)/設(shè)備。為使
    發(fā)表于 09-26 12:50 ?735次閱讀
    Anydesk--如何建立<b class='flag-5'>TCP</b>通道