C 发送大数据包时地址错误

C 发送大数据包时地址错误,c,ffmpeg,send,C,Ffmpeg,Send,我正在用ffmpeg和sdl在C上编写一个实时网络摄像头流。 我的平台是linux 我的应用程序是基于客户机-服务器的。 客户端从网络摄像头读取数据,生成一个AV数据包,然后发送到服务器 我的问题是,AVPacket结构有一个名为data的成员,大约为600k。 起初,我没有检查发送返回值, 因此,数据包当然无法完全发送 但是在我检查之后,发送在大数据包的第二次迭代中返回了错误的地址错误。 数据包的长度必须正确,因为它是由AVPacket结构提供的 它之前发送了2个AV数据包成员,因此服务器已启

我正在用ffmpeg和sdl在C上编写一个实时网络摄像头流。 我的平台是linux

我的应用程序是基于客户机-服务器的。 客户端从网络摄像头读取数据,生成一个AV数据包,然后发送到服务器

我的问题是,AVPacket结构有一个名为data的成员,大约为600k。 起初,我没有检查发送返回值, 因此,数据包当然无法完全发送

但是在我检查之后,发送在大数据包的第二次迭代中返回了错误的地址错误。 数据包的长度必须正确,因为它是由AVPacket结构提供的

它之前发送了2个AV数据包成员,因此服务器已启动并正常工作

问题部分:

    int send_video_data(video_client_t *client, void* buf, int length)
    {
        int rc;

        while (length > 0)
        {
           if ((rc = send(client->sockfd, buf, length, 0)) == -1) {
                     perror("failed sending data to server");
                     exit(1);
            }

            length-=rc;
            buf+=rc;
        }

        return 0;

    }
有人知道它为什么不起作用吗? 提前感谢

好吧,我想出来了。 问题在于AVP数据包

不知何故,大小不正确,可能是因为beacuse video for linux 所以我对数据包进行解码并重新编码,它现在开始工作了