小编Vig*_*igo的帖子

结构的序列化

假设我有一个结构,其成员值我想通过网络发送到使用winsock 2的另一个系统.我正在使用C++语言.我如何将其转换为char*记住结构必须在发送之前被序列化,以及如何将char*反序列化为另一端的struct?我发现boost序列化是对类似问题的建议,但任何人都可以通过一个小的代码片段来说明序列化和反序列化吗?

这个问题可能看起来很基本,但相关帖子的其他答案并没有多大帮助.

c++ serialization winsock2 deserialization

11
推荐指数
4
解决办法
3万
查看次数

暂停并恢复另一个C++线程

我有一个C++代码,里面有两个线程.在线程2中的事件'A'之后,线程1应该暂停(暂停),在线程2中执行更多任务(比如事件'B'),最后应该恢复线程1.有没有办法做到这一点?

我的代码看起来像这样:

HANDLE C;
DWORD WINAPI A (LPVOID in)
{
    while(1){
        // some operation
    }
    return 0;
}

DWORD WINAPI B (LPVOID in)
{
    while(1){

        //Event A occurs here

        SuspendThread (C);

        //Event B occurs here

        ResumeThread (C);
        }
    return 0;
}

int main()
{
    C = CreateThread (NULL, 0, A, NULL, 0, NULL);
    CreateThread (NULL, 0, B, NULL, 0, NULL);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ winapi multithreading

7
推荐指数
2
解决办法
2万
查看次数

用于音频文件流的 FFMPEG 命令

我正在尝试使用 FFMPEG 库将 mp3 格式的音频文件流式传输到与发送者位于同一 LAN 上的远程计算机。我用来在发送方进行流传输的命令如下:

ffmpeg -re -f mp3 -i sender.mp3 -ar 8000 -f mulaw -f rtp rtp://10.14.35.23:1234
Run Code Online (Sandbox Code Playgroud)

我在 FFMPEG 文档页面上收到以下命令,该命令生成音频并将其流式传输到远程计算机上的端口号 1234

ffmpeg -re -f lavfi -i aevalsrc="sin(400*2*PI*t)" -ar 8000 -f mulaw -f rtp rtp://10.14.35.23:1234
Run Code Online (Sandbox Code Playgroud)

我以为我已经对此进行了相关更改,以便 mp3 流命令可以工作,但只知道遇到错误,内容为
“打开输出流编码器时出错 #0:0 - 可能参数不正确,例如 bit_rate、速率、宽度或高度”

谁能告诉我这里的参数错误是什么以及如何纠正它?

c++ audio ffmpeg audio-streaming

5
推荐指数
1
解决办法
3万
查看次数

通过队列的多个线程的互斥锁

我试图通过队列在两个线程之间共享数据.一个线程推入,另一个线程从队列中弹出.我知道在线程之间进行同步是安全的,因此决定使用互斥锁.我看到的每个论坛在代码中都有#include"mutex"语句,但是我得到"致命错误C1083:无法打开包含文件:'mutex':没有这样的文件或目录",当我使用它时.请告诉我这是由于什么错误.

我使用的是Windows机器和Visual Studio 2005编译器.

c++ multithreading mutex thread-safety visual-c++

2
推荐指数
1
解决办法
3561
查看次数