新手上路
- 积分
- 29
- 金钱
- 29
- 注册时间
- 2017-5-2
- 在线时间
- 45 小时
|
14金钱
LWIP TCP 主动发送数据失败!!!我是按照网上别人说的办法来做的,但是电脑上没有接收到数据。小白求解。。。
我是这样子做的:1、在tcp的接收回调函数http_recv里屏蔽掉原来的发送语句;
2、在tcp的接收回调函数http_recv里将当前的pcb状态保存下来,即定义一个全局的my_tpcb ,并且在http_recv里保存pcb状态:my_tpcb = pcb;
3、自定义TCP主动发送函数:
void My_TCP_SendData(void)
{
err_t err;
ack_done->file = ack_file.data;
ack_done->left = ack_file.len;
err = tcp_write(my_tpcb, ack_done->file, ack_done->left, 0); //数据写入缓冲区的返回值是ERR_OK
if (err == ERR_OK)
{
ack_done->file += len;
ack_done->left -= len;
}
tcp_sent(my_tpcb, http_sent);
}
4、调用My_TCP_SendData()。
|
|