C语言 从终端主机读取实时流数据



我正在使用终端作为主机来输入数据(通过将任意一组字符复制/粘贴到终端中)。我想在我的应用程序中捕获此数据流。

我使用此代码示例作为客户端来侦听主机。但是,我收到的输出是一个小字符串,不等于缓冲区的大小。我预计代码会打印出字符串,等于缓冲区的大小。

> buffer size = 100;
> --
> sample input (copy/pasted into terminal): "here is a random string" 
>
> current output: "h" 
> expected output: "here is a random string"

我将如何捕获此"实时"数据流并使输出与缓冲区一致,而不是一个小字符串?

经过一些调查,recv()函数不能保证收集我想要的所有数据。

为此,我遵循: https://stackoverflow.com/a/12696176/1121302

现在,我得到了预期的输出。

看起来他们使用的是UDP协议,而不是保证交付和订购的TCP。甚至您链接的页面也在页面的一半提到了这一点。

请记住:使用 UDP 数据报套接字发送的数据不能保证到达!

相关内容

  • 没有找到相关文章

最新更新