Wie werden Nachrichten mit einer größeren Länge als der Puffer in der Socket-Programmierung gesendet?

Ich entwickle eine Anwendung mit Winsock in C ++. Ich habe ein 200-Byte-Zeichen-Array zum Senden von Zeichenfolgen über den Socket.

Mein Problem ist, dass ich beim Senden von Nachrichten, die größer als das char-Array sind, beschlossen habe, sie in mehreren Blöcken zu senden, aber ich habe keine Ahnung, wie ich das machen soll.

Zum Senden und Empfangen der Daten verwende ich das reguläresend() undrecv() Funktionen:

recv(client, buffer, 200, NULL);
send(client, buffer, 200, NULL);

Aktualisiere

Ich habe eine Struktur:

struct Pack
{
    unsigned int senderId;
    char str[200];
}

vor dem senden konvertiere ich dasstruct to char array.

Pack pk;
strcpy_s(pk.str, 200, "Some text to send.\0");
pk.senderId = 1 // user id
char *buffer = (char*)pk;

Wenn die Zeichenfolge größer als 200 ist, stürzt strcpy_s () ab.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage