标签: buffer

为什么得到Http请求和响应太晚了

我正在使用http post方法向Http Server URL发送请求.

请求和响应之间的时间差大约为60秒,但根据服务器团队,一旦请求到达,他们将发送响应7秒.

我不认为网络在服务器端需要剩余53秒的时间才能到达数据包,因此可能出现问题.

在此应用程序中,我们在客户端和服务器之间使用同步通信.请提供以下详细信息.

  1. 是因为服务器以比服务器能够处理的更快的速度发送请求.在这种情况下,很多时候客户端以3秒的间隔获取请求,而服务器需要7秒来处理此问题.
  2. 什么是网络缓冲区.网络级别有两个缓冲区,一个位于客户端,另一个位于服务器位置.
  3. 如果服务器无法以相同的速度处理客户端发送的请求,则所有请求都会在客户端缓冲区缓冲,如果有更多的请求待处理,则会发生什么情况,而不是该缓冲区的最大大小.
  4. 如果我们处于客户端并且无法控制服务器,那么提高性能的替代方法是什么?

编辑:当我在网络中使用wireshark来捕获网络日志时,我发现它实际上是我的应用程序发送到服务器后20秒内在wireshark中进行了学习.这种延迟背后的原因是什么?什么原因可能是请求在网络中出现20秒实际发送延迟的可能原因.

.net c# performance buffer http

12
推荐指数
3
解决办法
4582
查看次数

在GDB中写入十六进制

我在软件安全类中,我们目前正在学习缓冲区溢出以及它们如何被利用.我有一个程序,我知道如何利用,但我似乎无法这样做,因为我必须写十六进制,它不允许我写.

我需要编写从以下位置生成的数据:

perl -e 'print "A"x48; print "\x1b\x88\x04\x08";'
Run Code Online (Sandbox Code Playgroud)

但是,我无法将该输出重定向到命令行参数,因为该程序以交互方式运行.从历史上看,我已经使用xclip将其复制到剪贴板,然后将其粘贴到正在运行的应用程序中,但由于某种原因,这个十六进制序列不允许我使用xclip来复制它(它显示没有被复制).

例如:

perl -e 'print "A"x48; print "\x1b\x88\x04\x08";' | xclip -sel clip
Run Code Online (Sandbox Code Playgroud)

如果我之后按ctrl + V,则不会粘贴任何内容.如果我只是复制并粘贴终端窗口的输出,则会粘贴错误的十六进制(我假设这是因为十六进制不是可见的ASCII).

我的问题是:GDB是否有办法将生成的文本插入到交互式的运行程序中?

我知道如果可利用程序采用命令行参数,我可以这样做:

run $(perl -e 'print "A"x48; print "\x1b\x88\x04\x08";')
Run Code Online (Sandbox Code Playgroud)

但由于它不通过cli参数运行,因此无法使用.

任何帮助都是极好的!

linux buffer gdb overflow

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

是否有缓冲区大小附加到标准输出?

我试图在Windows上找到与stdout相关的数据限制的一些信息.我似乎无法在MSDN上找到相关信息.

  1. 可以将多少数据写入stdout是否有限制?如果是这样,如果达到限制会发生什么?数据丢失了吗?

  2. 如果重定向stdout(例如,通过从.Net启动进程并使用ProcessStartInfo.RedirectStandardOutput属性),这对可以写入多少数据有影响吗?当我从调用过程中的stdout流中读取时,这是否会影响限制?

  3. 这些限制是否与命名管道有关?

.net windows buffer stdout

11
推荐指数
1
解决办法
7547
查看次数

高效的C#字节队列,用于解析二进制消息包的字节流

我试图替换我通常实现的循环缓冲区+.队列的功能是缓冲传入的字节(例如,来自串行端口或一些其他数据流),而解析器检查队列中的字节并检测和提取消息包.

标准:

  • 可以成长(即不固定大小)
  • = 1个字节可以一次排队

  • = 1个字节可以一次出列

  • 高效

我很想去使用它

System.Collections.Generic.Queue<byte>
Run Code Online (Sandbox Code Playgroud)

...但我不确定这是否是最有效的类型.有什么建议?

有没有更明智的方法来做我想做的事情?(例如,这里有趣的建议)

感谢您的建议和意见.

Prembo.

c# queue buffer data-structures

11
推荐指数
1
解决办法
7519
查看次数

Java中的直接缓冲区是否初始化为默认值,如数组?

当我用Java初始化数组时:

float[] array = new float[1000];
Run Code Online (Sandbox Code Playgroud)

所有元素都初始化为0.当我分配这样的直接缓冲区时也是如此:

FloatBuffer buffer = ByteBuffer.allocateDirect(4*1000).asFloatBuffer();
Run Code Online (Sandbox Code Playgroud)

?我似乎总是只得到零,但也许它依赖于实现......

java buffer initialization

11
推荐指数
2
解决办法
2708
查看次数

如果CGImageCreate的数据提供者使用应用程序创建的数组,那么对CGImageCreate的正确调用是什么样的呢?

我正在尝试在内存中创建一个位图作为模式函数的一部分,drawLayer:inContext:方法(此方法是CALayer委托协议的一部分)将调用.模式函数看起来类似于:

static const size_t kComponentsPerPixel = 4;
static const size_t kBitsPerComponent = sizeof(unsigned char) * 8;

NSInteger layerHeight = 160;
NSInteger layerWidth = 160;
CGContextSaveGState(context); 

CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();

size_t bufferLength = layerWidth * layerHeight * kComponentsPerPixel;

unsigned char *buffer = malloc(bufferLength);

// The real function does something more interesting with the buffer, but I cut it 
// to reduce the complexity while I figure out the crash.
for (NSInteger i = 0; i < bufferLength; ++i)
{
    buffer[i] = …
Run Code Online (Sandbox Code Playgroud)

buffer objective-c cgimage rgba ios

11
推荐指数
1
解决办法
6064
查看次数

"最佳"IO缓冲 - 程序员或内核的任务?

我的任务很简单:在Linux上用C++读取和解析一个大文件.有两种方法:

  1. 逐字节解析.

    while(/*...*/) {
            ... = fgetc(...);
            /* do something with the char */
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 缓冲区解析缓冲区.

    while(/*...*/) {
            char buffer[SOME_LARGE_NUMBER];
            fread(buffer, SOME_LARGE_NUMBER, 1, ...);
            /* parse the buffer */
    }
    
    Run Code Online (Sandbox Code Playgroud)

现在,逐字节解析对我来说更容易(不检查​​缓冲区的满载程度等).但是,我听说读大片更有效率.

什么是哲学?是"最佳"缓冲内核的任务,所以当我打电话时它已经被缓冲了fgetc()?或者是否建议我处理它以获得最佳效率?

此外,除了所有哲学:Linux上的现实是什么?

c++ io performance buffer kernel

11
推荐指数
1
解决办法
552
查看次数

Python编写二进制文件,字节

Python 3.我正在使用QT的文件对话框小部件来保存从互联网下载的PDF.我一直在使用'open'读取文件,并尝试使用文件对话框小部件来编写它.但是,我一直遇到"TypeError:'_ io.BufferedReader'不支持缓冲区接口"错误.

示例代码:

with open('file_to_read.pdf', 'rb') as f1: 
    with open('file_to_save.pdf', 'wb') as f2:
        f2.write(f1)
Run Code Online (Sandbox Code Playgroud)

当不使用'b'指示符时,或者当从web读取文件时,这种逻辑适用于文本文件,例如urllib或者请求.这些是"字节"类型,我认为我需要打开文件.相反,它作为缓冲读者开放.我尝试了字节(f1),但得到"TypeError:'bytes'对象不能被解释为整数." 有什么想法吗?

python io buffer bufferedreader python-3.x

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

如何在Nodejs中将缓冲区转换为流

我遇到了一个关于在Nodejs中将缓冲区转换为流的问题.这是代码:

var fs = require('fs');
var b = Buffer([80,80,80,80]);
var readStream = fs.createReadStream({path:b});
Run Code Online (Sandbox Code Playgroud)

该代码引发异常:

TypeError: path must be a string or Buffer
Run Code Online (Sandbox Code Playgroud)

然而,Nodejs的文档说fs.createReadStream()可以接受Buffer.

fs.createReadStream(path [,options])
  path <string> | <缓冲区> | <URL>
  选项<string> | <对象>

有人可以回答这个问题吗?非常感谢!

buffer node.js

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

将 png 转换为 Tensor tensorflow.js

我目前正在尝试弄清楚如何使用 tensorflow.js 将输入 png 转换为张量,以便我可以将其输入到我的模型中进行训练。目前我正在捕获图像,将其保存在本地,使用 fs.readFileSync 读取它,然后创建一个缓冲区。我有点迷茫的地方是将缓冲区值从 0-244 标准化为 0-1,然后从该缓冲区创建一个张量以作为 X arg 输入 model.fit 函数。我也不知道如何设置我的标签文件并将其正确转换为 Y arg 的缓冲区。( https://js.tensorflow.org/api/0.11.2/#tf.Model.fit ) 任何有关正确使用/将图像配置为张量以使用 tensorflow.js 的见解将不胜感激。

回购在这里; https://github.com/Durban-Designer/Fighter-Ai

data.js中加载本地图片的代码;

const tf = require('@tensorflow/tfjs');
const assert = require('assert');
const IMAGE_HEADER_BYTES = 32;
const IMAGE_HEIGHT = 600;
const IMAGE_WIDTH = 800;
const IMAGE_FLAT_SIZE = IMAGE_HEIGHT * IMAGE_WIDTH;

function loadHeaderValues(buffer, headerLength) {
  const headerValues = [];
  for (let i = 0; i < headerLength / 4; i++) {
    headerValues[i] = buffer.readUInt32BE(i * 4);
  }
  return headerValues; …
Run Code Online (Sandbox Code Playgroud)

javascript png buffer node.js tensorflow.js

11
推荐指数
1
解决办法
9160
查看次数