Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
优化base64编码&;C语言解码_C_Optimization_Encoding_Base64 - Fatal编程技术网

优化base64编码&;C语言解码

优化base64编码&;C语言解码,c,optimization,encoding,base64,C,Optimization,Encoding,Base64,我正在C中开发一个应用程序,用于发送运行会话的视频日志。为此,我使用客户机-服务器体系结构 客户端 在一系列帧中每秒捕获一次屏幕 使用base64对帧即字节数组进行编码 并通过调用web服务API(在C#中)在线程函数中发送到目标服务器 服务器 服务器接收字节数组并对其进行解码以形成一个图像(C#) 问题:- 当我从一台具有2个或多个实时会话的机器连接时,CPU利用率将达到100%,而一切似乎都冻结了 由于base64编码过于繁重且耗时,无法处理,因此我无法捕获1个以上的实时会话 在

我正在C中开发一个应用程序,用于发送运行会话的视频日志。为此,我使用客户机-服务器体系结构

客户端

  • 在一系列帧中每秒捕获一次屏幕
  • 使用base64对帧即字节数组进行编码
  • 并通过调用web服务API(在C#中)在线程函数中发送到目标服务器
服务器

  • 服务器接收字节数组并对其进行解码以形成一个图像(C#)
问题:-

  • 当我从一台具有2个或多个实时会话的机器连接时,CPU利用率将达到100%,而一切似乎都冻结了
  • 由于base64编码过于繁重且耗时,无法处理,因此我无法捕获1个以上的实时会话
在发送到服务器之前,在客户端寻找base64中BMP文件的一些优化技术

先谢谢你

编辑:

代码在客户端使用openssl函数进行编码,这是强制性的,因为带有一些特殊字符的普通字符串被gSOAP丢弃并阻止,gSOAP在服务器端提供与C#服务的连接

char *base64(const unsigned char *input, int length)
{
    BIO *bmem, *b64;
    BUF_MEM *bptr;

    b64 = BIO_new(BIO_f_base64());
    bmem = BIO_new(BIO_s_mem());
    b64 = BIO_push(b64, bmem);
    BIO_write(b64, input, length);
    BIO_flush(b64);
    BIO_get_mem_ptr(b64, &bptr);

    char *buff = (char *)malloc(bptr->length);
    memcpy(buff, bptr->data, bptr->length - 1);
    buff[bptr->length - 1] = 0;

    BIO_free_all(b64);

    return buff;
}

评论不用于扩展讨论;此对话已结束。评论不用于扩展讨论;这段对话已经结束。