完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我们使用了 lwip_ping_freertos_cm7 示例。该示例运行良好,即它正在 ping 主机设备。
我的理解是—— 1) lwip_ping_bm 示例使用原始 API(即非操作系统使用原始 API) 2) OS模式可以使用Socket API和Raw API 3) lwip_ping_freertos 示例使用套接字 API 我的问题是,在创建套接字期间,它使用 SOCK_RAW 作为套接字类型,使用 ICMP 作为套接字协议。 lwip_socket(AF_INET, SOCK_RAW, IP_PROTO_ICMP); 我想将 SOCK_STREAM 创建为使用 TCP 协议的套接字类型。但是如果我直接修改它,它会给我错误。 我的要求是将以太网与普通的 tcp/ip 服务器-客户端示例一起使用。但是上面的代码使用了用于 UDP 传输的 sendto() , recvfrom() API。你能帮我,在哪里修改代码? |
|
相关推荐
1个回答
|
|
要在 iMXRT1176 上的 LwIP 中使用 TCP 套接字,您需要使用以下步骤:
1.使用 lwip_init() 函数初始化 LwIP 和网络接口。 2.使用 lwip_socket() 函数创建 TCP 套接字。示例代码如下: ```c int sock = lwip_socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); ``` 其中,AF_INET 表示 IPv4 协议族,SOCK_STREAM 表示创建 TCP 套接字,IPPROTO_TCP 表示使用 TCP 协议。 3.使用 lwip_bind() 函数将套接字绑定到本机 IP 地址和端口号。示例代码如下: ```c struct sockaddr_in addr; addr.sin_family = AF_INET; addr.sin_addr.s_addr = htonl(INADDR_ANY); addr.sin_port = htons(PORT); lwip_bind(sock, (struct sockaddr*)&addr, sizeof(addr)); ``` 其中,INADDR_ANY 表示使用任意可用的 IP 地址,PORT 是所选的本地端口号。 4.使用 lwip_listen() 函数开始监听传入连接请求。示例代码如下: ```c lwip_listen(sock, 5); ``` 其中,第二个参数 5 表示在队列中排队等待的最大连接数。 5.使用 lwip_accept() 函数接受传入的连接请求。示例代码如下: ```c struct sockaddr_in client_addr; socklen_t client_addr_len = sizeof(client_addr); int client_sock = lwip_accept(sock, (struct sockaddr*)&client_addr, &client_addr_len); ``` 其中,client_addr 是指向客户端地址的指针,并且 client_addr_len 是该结构体的大小。 6.使用 lwip_recv() 和 lwip_send() 函数接收和发送数据。示例代码如下: ```c char buf[1024]; int len = lwip_recv(client_sock, buf, sizeof(buf), 0); lwip_send(client_sock, buf, len, 0); ``` 其中,第一个参数是套接字描述符,第二个参数是接收和发送的数据缓冲区,第三个参数是缓冲区的大小,第四个参数是标志位。 7.最后,使用 lwip_close() 函数关闭套接字。示例代码如下: ```c lwip_close(client_sock); lwip_close(sock); ``` 请注意,上述代码只是示例,并且您需要根据您的具体需求进行修改和调整。 |
|
|
|
只有小组成员才能发言,加入小组>>
1906个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36358 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4395 浏览 0 评论
6050 浏览 1 评论
6763 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4212 浏览 0 评论
619浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
614浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
606浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
694浏览 2评论
796浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 05:51 , Processed in 0.823639 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号