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

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

3天内不再提示

【开鸿智谷NiobeU4开发板免费试用体验】基于LWIP的TCP连接

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-10-17 10:37 次阅读

本文来源电子发烧友社区,作者:大菠萝Alpha, 帖子地址:https://bbs.elecfans.com/jishu_2307368_1_1.html


这个功能反反复复折腾了好几天,多亏开鸿智谷原厂工程师支持。

一、目标

基于LWIP,在NiobeU4开发板上部署TCP Client,连接测试服务器,获取服务器发来的信息

二、设计实现

TS1.png

(一)TCP Server

Server直接在计算机上,用Python实现了个简单的,功能就是client连接上后,给其发送一段字符。

import socket

# 指定协议
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 让端口可以重复使用
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# 绑定ip和端口
server.bind(('0.0.0.0', 8080))
# 监听
server.listen(1)
# 等待消息
while1:
  clientsocket, address = server.accept()
  clientsocket.send(address[0].encode("utf-8")+b'HELLO world~')
  clientsocket.close()
server.close()

代码比较简单,读读也清晰。

(二)TCP Client

TS.png

开发板端实现TCP Client功能即可,如上图,首先创建socket,再connect server,然后send 数据,最后close socket,一个典型的TCP Server-Client案例就好了,这次Client不发送而是接收(recv)信息,得益于OpenHarmony的LWIP协议栈,Client实现跟Linux编程毫无区别,具体代码如下:

void wifi_test(void)
{
    int sock = -1;
    struct sockaddr_in client_addr;
    char recv_data[768] = {0};
    int recv_data_len;
    WifiConnect(WIFI_NAME, WIFI_PWD);
    while (1) {
        sock = socket(AF_INET, SOCK_STREAM, 0);
        if (sock < 0) {
            printf("Socket errorn");
            osDelay(OD_DELAY_100);
            continue;
        }
        memset_s(&(client_addr), sizeof(client_addr), 0, sizeof(client_addr));
        client_addr.sin_family = AF_INET;
        client_addr.sin_port = htons(SERVER_PORT);
        client_addr.sin_addr.s_addr = inet_addr(SERVER_IP);
        printf("try connect to server "SERVER_IP" :%d n", SERVER_PORT);
        if (connect(sock, (struct sockaddr *)&client_addr, sizeof(struct sockaddr)) == -1) {
            closesocket(sock);
            osDelay(OD_DELAY_1000);
            continue;
        }
        printf("Connect to tcp server successful!n");		
        while (1) {
            recv_data_len = recv(sock, recv_data, RECV_LEN, 0);
            if (recv_data_len <= 0) {
                break;
            } else {
                recv_data[recv_data_len] = '';
            }
            printf("recv: %sn", recv_data);
            write(sock, recv_data, recv_data_len);
        }
        close(sock);
	break;
    }
}

三、编译烧录

反正hb set,hb build -f一顿操作猛如虎,直接烧写OHOS Img即可,其他的bootloader和partition因为没有变化,不必重新烧录。
TS3.png

四、运行

从系统log中,可以看出,NiobeU4板子启动后收到了Server发来的数据,HELLO world~。

[20:07:45:841]<--System Init-->
[20:07:45:841]<--Wifi Init-->
[20:07:45:841]register wifi event succeed!
[20:07:45:841]I (161) wifi_init: WiFi RX IRAM OP enabled
[20:07:45:992]I (558) phy_init: phy_version 4670,719f9f6,Feb 18 2021,17:07:07
[20:07:45:992]I (2378) wifi:mode : 
[20:07:48:981]WaitScanResult:wait success[3]s
[20:07:48:981]starlink  
[20:07:48:981]
[20:07:49:835]sta (44:17:93:96:e6:34)
[20:07:49:835]I (2378) wifi:enable tsf
[20:07:49:835]I (6228) wifi:new:<8,0>, old:<1,0>, ap:<255,255>, sta:<8,0>, prof:1
[20:07:49:841]I (6228) wifi:state: init -> auth (b0)
[20:07:49:866]I (6238) wifi:state: auth -> assoc (0)
[20:07:49:866]I (6248) wifi:state: assoc -> run (10)
[20:07:49:866]I (6248) wifi:connected with starlink, aid = 6, channel 8, BW20, bssid = 3e:87:46:16:13:6e
[20:07:49:880]I (6248) wifi:security: Open Auth, phy: bgn, rssi: -50
[20:07:49:880]I (6callback function for wifi connect
[20:07:49:880]248) wifi:pm start, type: 1
[20:07:49:954]
[20:07:49:954]W (6268) wifi:idx:0 (ifx:0, 3e:87:46:16:13:6e), tid:0, ssn:0, winSize:64
[20:07:49:969]I (6348) wifi:AP's
[20:07:52:482]WaitConnectResult:wait success[1]s
[20:07:52:482]WiFi connect succeed!
[20:07:52:482]
[20:07:53:485]start wifi_test test
[20:07:53:485]try connect to server 192.168.43.159 :8080 
[20:07:53:485]Connect to tcp server successful!
[20:07:53:495]recv: 192.168.43.158HELLO world~
[20:07:53:505]try connect to server 192.168.43.159 :8080 
[20:07:53:505]Connect to tcp server successful!
[20:07:53:509]recv: 192.168.43.158HELLO world~
[20:07:53:523]try connect to server 192.168.43.159 :8080 
[20:07:53:523]Connect to tcp server successful!
[20:07:53:523]recv: 192.168.43.158HELLO world~

##感谢阅读##

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

    关注

    2

    文章

    127

    浏览量

    1169
  • NiobeU4
    +关注

    关注

    3

    文章

    31

    浏览量

    511
收藏 人收藏

    评论

    相关推荐

    有奖丨米尔 全志T536开发板免费试用

    米尔与全志合作发布的新品基于全志T536应用处理器的MYD-LT536-GK开发板免费试用活动来啦~~米尔提供了3块价值750元的MYD-LT536-GK开发板发起
    的头像 发表于 12-26 08:05 234次阅读
    有奖丨米尔 全志T536<b class='flag-5'>开发板</b><b class='flag-5'>免费</b><b class='flag-5'>试用</b>

    追加名额丨米尔瑞芯微RK3576开发板有奖试用

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3576应用处理器的MYD-LR3576开发板免费试用活动加码啦~~米尔追加了2块价值849元的MYD-LR3576开发板发起
    的头像 发表于 11-22 01:00 255次阅读
    追加名额丨米尔瑞芯微RK3576<b class='flag-5'>开发板</b>有奖<b class='flag-5'>试用</b>

    有奖丨米尔 瑞芯微RK3576开发板免费试用

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3576应用处理器的MYD-LR3576开发板免费试用活动来啦~~米尔提供了7块价值849元的MYD-LR3576开发板发起
    的头像 发表于 11-12 01:00 398次阅读
    有奖丨米尔 瑞芯微RK3576<b class='flag-5'>开发板</b><b class='flag-5'>免费</b><b class='flag-5'>试用</b>

    有奖试用!!RA-Eco-RA4E2-64PIN-V1.0开发板试用活动开始报名

    有奖试用!!RA-Eco-RA4E2-64PIN-V1.0开发板试用活动开始报名
    的头像 发表于 11-09 01:02 324次阅读
    有奖<b class='flag-5'>试用</b>!!RA-Eco-RA<b class='flag-5'>4</b>E2-64PIN-V1.0<b class='flag-5'>开发板</b><b class='flag-5'>试用</b>活动开始报名

    鸿亮相OpenHarmony开发者大会,与生态共创开源新篇章!

    5月25日,以“鸿心聚力智引未来”为主题的OpenHarmony开发者大会2024(以下简称大会)在深圳成功举办。鸿获得多项奖项及授牌
    的头像 发表于 05-26 08:30 789次阅读
    <b class='flag-5'>开</b><b class='flag-5'>鸿</b>智<b class='flag-5'>谷</b>亮相OpenHarmony<b class='flag-5'>开发</b>者大会,与生态共创开源新篇章!

    鸿荣获鸿蒙原生应用开发及培训服务商牌匾授牌

    出席现场,并获颁鸿蒙原生应用开发及培训服务商称号。图/左4鸿副总裁李传钊
    的头像 发表于 05-24 08:30 832次阅读
    <b class='flag-5'>开</b><b class='flag-5'>鸿</b>智<b class='flag-5'>谷</b>荣获鸿蒙原生应用<b class='flag-5'>开发</b>及培训服务商牌匾授牌

    鸿联合多家伙伴战略签约,加速鸿蒙生态发展!

    5月20日,鸿母公司拓维信息520产品与技术开放日暨28周年庆圆满举行,此次周年庆不仅是对公司创新突破、产品孵化和商业成果的回顾,更是携手合作伙伴共同展望未来、开启新篇章的重要时刻。
    的头像 发表于 05-23 08:30 851次阅读
    <b class='flag-5'>开</b><b class='flag-5'>鸿</b>智<b class='flag-5'>谷</b>联合多家伙伴战略签约,加速鸿蒙生态发展!

    免费!NXP i.MX 93开发板有奖试用

    米尔与NXP合作发布的新品基于NXPi.MX93应用处理器的MYD-LMX9X开发板免费试用活动来啦~~米尔提供了2块价值678
    的头像 发表于 05-23 08:01 789次阅读
    <b class='flag-5'>免费</b>!NXP i.MX 93<b class='flag-5'>开发板</b>有奖<b class='flag-5'>试用</b>

    电脑TCP客户端连接开发板LWIP出现错误怎么解决?

    开发板使用的STM32F407,UCOSII+LWIP开发板TCP服务器时,用电脑作TCP客户端连接
    发表于 05-09 06:38

    如何使用Vitis自带的LWIP模板进行PS端千兆以太网TCP通信?

    开发板有两路千兆以太网,通过RGMII接口连接,本实验演示如何使用Vitis自带的LWIP模板进行PS端千兆以太网TCP通信。
    的头像 发表于 04-28 10:44 3726次阅读
    如何使用Vitis自带的<b class='flag-5'>LWIP</b>模板进行PS端千兆以太网<b class='flag-5'>TCP</b>通信?

    鸿受邀出席2023年度南山区经济突出贡献企业TOP峰会

    4月19日,2023年度南山区经济突出贡献今业TOP峰会顺利召开,鸿(深圳子公司)作为南山鸿蒙产业生态的核心企业,OpenHarmony项目群A类捐赠人、鸿蒙生态服务公司首批入驻
    的头像 发表于 04-20 08:29 470次阅读
    <b class='flag-5'>开</b><b class='flag-5'>鸿</b>智<b class='flag-5'>谷</b>受邀出席2023年度南山区经济突出贡献企业TOP峰会

    lwip开发板联网ping不通是怎么回事?

    求大佬帮助!eth外设的lwip功能联网测试,发现电脑与开发版直连的时候通讯没有问题,而且TCP和UDP测试没有问题,但是电脑和开发版通过外部路由器
    发表于 04-03 06:51

    拓维信息及旗下鸿同获华为HarmonyOS开发服务商认证

    近日,拓维信息及旗下鸿双双通过华为HarmonyOS开发服务商认证,成为华为“鸿蒙服务商先锋计划”认证级伙伴。秉持共同发展、共创价值的合作理念,拓维信息、
    的头像 发表于 03-29 08:13 555次阅读
    拓维信息及旗下<b class='flag-5'>开</b><b class='flag-5'>鸿</b>智<b class='flag-5'>谷</b>同获华为HarmonyOS<b class='flag-5'>开发</b>服务商认证

    鸿与CSDN达成战略合作,共建OpenHarmony人才计划

    2024年3月19日,鸿与中国专业开发者社区CSDN就共建OpenHarmony人才计划达成战略合作并举办发布仪式。
    的头像 发表于 03-20 08:29 475次阅读
    <b class='flag-5'>开</b><b class='flag-5'>鸿</b>智<b class='flag-5'>谷</b>与CSDN达成战略合作,共建OpenHarmony人才计划

    国内首批 | 鸿多名讲师获“鸿蒙原生应用开发培训讲师”资格认证

    2023年3月4日-5日,鸿蒙生态服务(深圳)有限公司(以下简称“鸿蒙生态服务公司”)组织了国内首批“鸿蒙原生应用开发培训讲师”认证,鸿
    的头像 发表于 03-16 08:29 739次阅读
    国内首批 | <b class='flag-5'>开</b><b class='flag-5'>鸿</b>智<b class='flag-5'>谷</b>多名讲师获“鸿蒙原生应用<b class='flag-5'>开发</b>培训讲师”资格认证