首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >lwip 2.0.2:使用原始api的TCP服务器

lwip 2.0.2:使用原始api的TCP服务器
EN

Stack Overflow用户
提问于 2020-09-30 10:47:17
回答 1查看 1.9K关注 0票数 0

我有一个工作裸金属代码,它使用LWIP2.0.2实现简单的TCP服务器,它运行在Xilinx UltraScale+ Kintex上。

现在我想使用原始api。

守则是:

代码语言:javascript
复制
struct raw_pcb *pcb;
pcb = raw_new_ip_type(IPADDR_TYPE_V4 , 0);  //pcb!=null
err = raw_bind (pcb, IP4_ADDR_ANY); //err=0
raw_recv(pcb, raw_recv_callback, NULL);


u8_t raw_recv_callback (void *arg, struct raw_pcb *pcb, struct pbuf *p, const ip_addr_t *addr)
{



    return 0;
}

从一个(非常)简单的windows应用程序中,我尝试连接并得到了一个错误。请您告知:如果使用原始api,在绑定步骤之后是否还应该使用tcp?

如果只使用TCP,则来自远程windows应用程序的连接可以正常工作。

我在https://github.com/tmatsuya/xapp1026.git中发现了很少的示例代码,但它们中没有使用原始api。

提前谢谢你,Zvika

EN

回答 1

Stack Overflow用户

发布于 2020-11-03 21:51:53

lwIP有一个单独的配置库,其中有一个tcpecho_raw示例:https://git.savannah.nongnu.org/cgit/lwip/lwip-contrib.git/tree/apps

它使用tcp_bind(raw_pcb,.),tcp_listen(raw_pcb)和tcp_accept(raw_pcb,.)在服务器端。

raw_bind()和相关函数用于“实现原始协议多氯联苯,用于不同类型协议的低级别处理,以及(或覆盖)lwIP中已有的协议”。见https://www.nongnu.org/lwip/2_1_x/group__raw__raw.html

如果您想使用TCP协议,只需使用tcp_*()函数即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64135968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档