gpt4 book ai didi

c++ - 通过网络发送和接收数据

转载 作者:行者123 更新时间:2023-11-28 06:15:46 24 4
gpt4 key购买 nike

我有一个 vector 定义如下:

std::vector<char*> rooms;
const int rows = 100;
const int columns = 10;

我需要将这个 vector 作为字符串缓冲区发送。然后接收字符串并将其转换为另一个具有相同大小的 vector 。

这是我发送字符串的方式:

int SendData(std::string data)
{
s.SendLine(data);

return 0;
}

我只是想不出解决方案。

最佳答案

既然您已经知道如何发送字符串,而 vector 只是一系列字符串,那么发送 vector 最直接的方法就是简单地一个接一个地发送字符串。

当然,细节决定成败:接收者如何知道预期有多少字符串?接收方如何知道一个字符串在哪里结束以及下一个字符串从哪里开始?

答案:在发送第一个字符串之前,发送一些初始数据以表明您打算发送多少个字符串。 (如果你想保持简单,这可能是一个额外的字符串,如“100”,接收者会知道将其用作提示;或者你可以发送一个整数作为一个或两个或四个字节的二进制数据,如果你愿意那样做[如果你发送它超过一个字节,一定要考虑字节顺序问题])

至于接收方知道一个字符串在哪里结束和下一个字符串在哪里开始,一种方法是确保在每个字符串的末尾发送一个 NUL/0 字节;然后接收方可以查找该字节以了解每个字符串的结束位置。另一种方法是在发送字符串本身之前发送字符串中的字节数,然后接收方就可以确保读入该字符串的字节数。

关于c++ - 通过网络发送和接收<vector>数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30364748/

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