【笔记更新】ESP8266串口透传笔记

芯片:ESP8285

环境:官方RTOS_SDK

在做串口数据通过TCP发送的时候会碰到客户端没200字节一个包发送,但是到server端并不是200字节一个包収的,原因是lwip在TCP通信的时候默认是开启Nagle’s算法的,这个是一种防止一直发小包,serve端接不过来而导致缓存区阻塞导致丢包问题,会把小包缓存成大包进行发送,只要进制就可以了,这里我用的socket API,代码如下:

static void _set_tcp_nodelay(int fd) {
    int enable = 1;
    setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (void*)&enable, sizeof(enable));
}

在做websever的时候我碰到了用socket API进入accept阻塞后长时间没有链接,再次连接会出现连接失败问题,至今没有找到原因,我用ESP8266自带的TCP API的可以支持长时间,但是连接次数超过5次后就无法连接了,这里的原因是因为需要显示调用一个初始化接口,但是官方文档里没有给出,代码如下:

    espconn_init();
    xTaskCreate(vTask_TCP_sever, "vTask_TCP_sever", 500, NULL, 6, NULL);

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值