すのはら荘春原庄的雪

小火车协议

Toretto·2022-03-22 19:26·238 次阅读

小火车协议

复制代码
typedef struct train_s{
    int dataLength;//发送的长度
    char buf[1000];//发送的内容
}train_t;
ret = send(pTask->netFd,&t,sizeof(t.dataLength)+ t.dataLength,MSG_NOSIGNAL);
//自定义的接收函数
int recvn(int netFd, void *p, int n)
{
    int total = 0;
    int ret;
    char *pTmp = (char *)p;
    while (total < n)
    {
        //可能传输不稳定,while循环保证一定收满n大小
        ret = recv(netFd, pTmp + total, n - total, 0);
        ERROR_CHECK(ret, -1, "recv");
        total += ret;
    }
    return 0;
}
//一次发送两次接收
    int ret = recvn(pTask->netFd, &dataLength, sizeof(int)); //先收火车头
    ERROR_CHECK(ret, -1, "recv");
    ret = recvn(pTask->netFd, name, dataLength); //再收火车内容
    ERROR_CHECK(ret, -1, "recv");
复制代码

 

posted @   晓风霜度-  阅读(238)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示