если вы просто хотите отправить строки, вы можете получить что-то подобное; это сериализация в простой форме: заголовок, содержащий размер следующих данных (псевдокод)
Send( socket, const string& str )
{
const size_t len = str.length();
send( socket, &len, sizeof( len ) );
send( socket, str.data(), len );
}
Receive( socket, string& str )
{
size_t len;
receive( socket, &len, sizeof( len ) );
str.resize( len );
receive( socket, str.data(), len );
}
Изменить: см. Комментарий 1, более быстрый способ отправки будет
Send( socket, const string& str, rawmemory& packet )
{
const size_t len = str.length();
packet.Reserve( len + sizeof( len ) );
packet.ResetOffset();
packet.CopyFrom( &len, sizeof( len ) );
packet.CopyFrom( str.data(), len );
send( socket, packet.Data(), packet.Length() );
}