我将如何索引缓冲区,并将前30个字节添加到另一个较小的缓冲区中?

问题描述 投票:-1回答:1

我对c ++中的索引和数组的知识很薄,请原谅我。假设我有一个包含文本文件的缓冲区。我需要创建一个循环,该循环将通过此缓冲区并在30字节标记处,将这30个字节添加到另一个较小的缓冲区中,然后发送它。然后,我需要它继续直到到达文本文件的末尾。这有可能吗?我正在创建一个客户端/服务器代码,可以以数据包形式发送文本文件。我需要一次发送30个字节。

c++ sockets server client packet
1个回答
0
投票

尝试这样的事情:

bool sendRaw(void *buffer, int size)
{
    char *ptr = (char*) buffer;

    while (size > 0)
    {
        int numSent = send(YourSocket, ptr, size, 0);
        if (numSent < 0)
            return false;

        ptr += numSent;
        size -= numSent;
    }

    return true;
}

bool sendText(char *text, int length)
{
    int numBytes;

    while (length > 0)
    {
        numBytes = min(length, 30);
        memcpy(YourPacketBuffer, text, numBytes);

        if (!sendRaw(YourPacketBuffer, SizeOFYourPacketBuffer))
            return false;

        text += numBytes;
        length -= numBytes;
    }

    return true;
}
热门问题
推荐问题
最新问题