gpt4 book ai didi

c - 在收到换行符之前,Visual C++ 中的 recv 不返回任何数据

转载 作者:太空宇宙 更新时间:2023-11-04 08:32:45 24 4
gpt4 key购买 nike

我在使用 Winsock recv 的 Visual C++ 中遇到一个非常奇怪的问题。我只是试图一次接收 1 个字节的数据,但是 recv 根本不会返回任何数据,直到流中出现换行符为止。我没有做任何特别的事情。我只是接受来自客户端的套接字连接,然后在它打开后调用 recv。

我已经尝试在 linux 机器上使用 putty、teraterm 和 telnet 连接到它。在所有情况下,直到我在客户端中按下回车键后,recv 才会返回任何数据!首先,我使用的是 SDL_Net(因为我的程序无论如何都使用 SDL,而且我想跨平台),我遇到了这个问题。我认为这是一个 SDL_Net 问题,所以我将其转换为仅使用 Winsock,但仍然有同样的问题!

最佳答案

您的 client 可能不会发送任何东西,直到您按下回车,由于行缓冲 -- stdio 通常缓冲输入直到它看到换行符(这允许您,除其他事项外,在发送之前编辑您正在编写的行)。

如果您对客户端有任何控制,您可以将控制台置于“原始”模式,即在发送 key 后立即发送 key 。如何执行此操作取决于平台。

关于c - 在收到换行符之前,Visual C++ 中的 recv 不返回任何数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27578213/

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