gpt4 book ai didi

C++ 套接字 256 字节缓冲区

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:51 25 4
gpt4 key购买 nike

我正在尝试使用 C++ 中的一些套接字网络编程。我正在尝试发送文本“Hello World!”使用 C++ send() 函数发送到服务器。起初,我将缓冲区的大小设置为 13,因为“Hello World!”总共是 12 个字符(你必须使它比字符数多一个)。如果我发送大约 7 次,发送功能只会将字符发送到服务器。当它最终到达服务器时,它看起来像这样:

“ Hello World ! Hello World ! Hello World ! Hello World ! Hello World ! Hello World ! Hello World !”

现在是有趣的部分。 “ Hello World !”如果我将缓冲区大小设置为 256 (char buffer[256];),句子会立即发送。但是,当涉及到这样的服务器时,它会显示“Hello World!”两个词后有一大堆空格。为什么会发生这种情况,如果可能,我该如何解决?请告诉我。

谢谢

最佳答案

当您使用缓冲区调用read(或receive)以从套接字读取时,将返回一个整数值,指定读取的字节数。您应该只从缓冲区中取出那么多。其余的无关紧要:

int count = read(...);
// buffer[0 .. count - 1] contains the appropriate data.

关于C++ 套接字 256 字节缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/749873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com