为文件中可能不存在的Winsock查找终止字符

时间:2019-07-08 15:03:20

标签: windows file winsock2

我正在将Winsocks用于TCP客户端/服务器,它发送const char *, 问题是,一次调用send(clientsocket,sendBuffer,strlen(sendBuffer)+1,0) 分别发送char sendBuffer [512]中的每个字符,并由char接收char。理想情况下,我希望“一次”接收所有512个元素,但如果不可能的话,可以不使用它。

所以我需要找到一个终止字符,因为我的目标是发送文件,所以我需要一个在文件中找不到 的字符。这是我用来序列化文件的代码

char* read_file(string path, int& len)
{
    std::ifstream infile(path);

    infile.seekg(0, infile.end);
    size_t length = infile.tellg();
    infile.seekg(0, infile.beg);
    len = length;
    char* buffer = new char[len]();

    infile.read(buffer, length);
    return buffer;
}

string load_to_buffer()
{
    char* img;
    int ln;
    img = read_file("C:\\Users\\they\\Documents\\sock.txt", ln);
    string s = "";
    for (int i = 0; i <= ln; i++){
        s += *(img + i);
    }
    return s;
}

要发送的代码:

strcpy(SenderBuffer, s.c_str());
            resend_packet:
                iSend = send(TCPClientSocket, SenderBuffer, iSenderBuffer, 0);

0 个答案:

没有答案