OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3568|回复: 7

lwip tcp_Server模式下怎样主动发送数据?

[复制链接]

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2018-4-6
在线时间
19 小时
发表于 2020-8-30 11:29:49 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 诺帝卡 于 2020-8-30 11:32 编辑

void Tcp_Penetrate_SenData(u8 *buf,u8 num)
{
        struct tcp_pcb *tpcb;
        tcp_write(tpcb,buf,num,TCP_WRITE_FLAG_COPY);         // payload为TCP数据块的起始位置               
        tcp_output(tpcb);        //发送数据出去
}
目前使用这个函数发送不出去,电脑客户端显示不了数据

static err_t tcp_server_recv(void *arg, struct tcp_pcb *pcb,struct pbuf *p,err_t err)
{
        u16 length;
        if(p != NULL)
        {
                length =p->len;  //这里取到的Length即为收到的数据长度
                G_TcpData.data_size=length;
                memcpy((void*)&(G_TcpData.data),p->payload,length);
                tcp_recved(pcb, p->tot_len);                                //获取数据长度 tot_len:tcp数据块的长度
                /******将数据原样返回*******************/
                //tcp_write这个函数其实是将你的数据放到一个队列,再调用tcp_output发送出去
                tcp_write(pcb,p->payload,p->tot_len,TCP_WRITE_FLAG_COPY);         // payload为TCP数据块的起始位置
                tcp_output(pcb);        //发送数据出去
        }
        else
        {
                tcp_close(pcb);                                                                                         /* 作为TCP服务器不应主动关闭这个连接? */
        }
        pbuf_free(p);                                                                                         /* 释放该TCP段 */
        err = ERR_OK;
        return err;
}
这个回调函数,我从电脑客户端发送数据给单片机就有数据返回,请问如果我要实现服务端主动发送数据给客户端要怎么实现呢?

最佳答案

查看完整内容[请看2#楼]

客户端连接服务器的时候要把连接的句柄记录下来,发送的时候要指定连接发送,你写的发送函数中连接句柄是个野指针,无法发送数据
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

204

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2443
金钱
2443
注册时间
2017-9-13
在线时间
559 小时
发表于 2020-8-30 11:29:50 | 显示全部楼层
客户端连接服务器的时候要把连接的句柄记录下来,发送的时候要指定连接发送,你写的发送函数中连接句柄是个野指针,无法发送数据
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2018-4-6
在线时间
19 小时
 楼主| 发表于 2020-8-31 09:58:15 | 显示全部楼层
顶贴..................
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2018-4-6
在线时间
19 小时
 楼主| 发表于 2020-8-31 11:53:40 | 显示全部楼层
HCHDaLeiGe 发表于 2020-8-31 11:30
客户端连接服务器的时候要把连接的句柄记录下来,发送的时候要指定连接发送,你写的发送函数中连接句柄是个 ...

句柄是指?
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2018-4-6
在线时间
19 小时
 楼主| 发表于 2020-8-31 11:58:21 | 显示全部楼层
HCHDaLeiGe 发表于 2020-8-31 11:30
客户端连接服务器的时候要把连接的句柄记录下来,发送的时候要指定连接发送,你写的发送函数中连接句柄是个 ...

我可以加你QQ或者微信单独请教你吗?
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2018-4-6
在线时间
19 小时
 楼主| 发表于 2020-9-1 17:56:43 | 显示全部楼层
HCHDaLeiGe 发表于 2020-8-31 11:30
客户端连接服务器的时候要把连接的句柄记录下来,发送的时候要指定连接发送,你写的发送函数中连接句柄是个 ...

谢谢你的帮忙,已经解决
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2020-4-10
在线时间
16 小时
发表于 2020-9-22 10:56:12 | 显示全部楼层
如何解决的呢,没有看懂啊
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2020-4-10
在线时间
16 小时
发表于 2020-9-22 11:22:49 | 显示全部楼层
具体怎么操作呢,能给指导一下吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-17 02:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表