gpt4 book ai didi

c - 通过 c 中的 ssl channel 接收一半消息

转载 作者:太空宇宙 更新时间:2023-11-03 15:03:30 25 4
gpt4 key购买 nike

我的问题是我可以使用下面的代码接收半条消息吗?如果我想发送这样的消息:“MESSAGE\n”如果 channel 很慢,我会只收到 M 字符吗?

和代码部分:

fd.fd = c->socket;
fd.events = POLLIN;
bzero(received, sizeof(received));

result = poll(&fd, 1, time);
if(result > 0)
{
i = SSL_read ( (SSL *)c->sslHandle, (char*)received, INCOMING_BUFFERSIZE);
result = SSL_get_error(c->sslHandle, i);
...
}

因为在没有收到“\n”符号之前我什么也没有收到。

如何确保我只接受消息末尾带有\n 的消息。

感谢帮助,

塔玛斯

编辑:我使用的版本是 1.0.1c

最佳答案

套接字是基于流的,这意味着您得到的是字节流,而不是消息。因此,通过一次 recv() 调用,您可以获得从 1 到已发送数据的所有字节。您需要将数据放入某个中间缓冲区并分析缓冲区中的某些标记(在您的情况下为\n )。

关于c - 通过 c 中的 ssl channel 接收一半消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16795146/

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