视频服务器端使用tcp将压缩后的数据发送给客户端:
一般压缩后一帧的数据是2-11KB, 然后我是一帧数据就直接一次send发送出去,请教这样会不会有问题?

解决方案 »

  1.   

    我所做的不是IPCamera采集的数据,是模拟转数字采集进来后,自己使用压缩算法压缩的
    所以包大小可以由自己来控制
    我的问题就是,send函数发送的数据包,是不是可以在我没有setsockopt设置发送缓冲的时候,可以超过8096KB.我的send socket没有设置非阻塞。在网络比较拥塞的时候,请问会不会有send阻塞然后不能发送的情况:下面是我发送代码:     void SendRealStream(UINT iChannelID, const LPBYTE pH264Data, ULONG lLen)
        {
    UINT i; m_apVideoPacket[iChannelID]->dwLen = lLen; memcpy(m_apVideoPacket[iChannelID]->Datas, pH264Data, lLen); for (i = 0; i < MAX_CLIENTS; i++)
    {
        send(m_pNetClient[i]->m_hSockTrans, 
                    (const char *)m_apVideoPacket[iChannelID], 
                     m_apVideoPacket[iChannelID]->dwLen + STREAM_PACTHEAD_SIZE, 0);
        }
    }
        }
    }