【发布时间】:2012-05-03 11:34:00
【问题描述】:
我正在使用 FreeRTOS + LwIP 开发基于以太网的床边护士呼叫设备。看了一些例子和文档,想用LwIP的netconn API在TCP下收发数据,因为我不熟悉BSD风格的API,原始API可能比较难。 p>
我知道netconn_accept() 函数会阻塞进程,直到来自远程主机的连接请求到达,而netconn_recv() 函数也会在等待数据到达时阻塞进程...这两个函数都会 block 这个过程,这对服务器接收数据有好处,但是,我的设备还需要充当客户端,当患者按下按钮时,它需要触发对护士中心的“呼叫”。 那么它如何在等待来自远程主机的连接(阻塞进程)的同时发起发送 TCP 数据包呢?
我需要发送 TCP,因为我必须使用 SIP(Session Initiation Protocol) 来发起呼叫,它应该是可靠的,因为它是一个医疗设备。非常感谢
@Kyle Heironimus , @werewindle 我知道你在 LwIP 方面有经验,所以我将你添加到我的问题中,希望不会给你带来不便,希望你能提供帮助,谢谢。
【问题讨论】:
-
由于我使用的是FreeRTOS,今天我尝试使用两个线程,一个作为服务器等待连接,另一个作为客户端在需要时打开TCP连接。服务器线程运行良好,但在客户端,当我调用
netconn_connect()时它总是返回错误...我尝试为服务器和客户端使用相同和不同的端口,但仍然失败 -
请帮我解决这个问题,stackoverflow.com/questions/51112786/…
标签: network-programming embedded voip freertos lwip