• Как правильно передавать данные через сокеты?

    @enotiiik Автор вопроса
    Ошибка была в длине передаваемого сообщения на стороне сервера. В размер действительно попадал размер указателя на массив вместо размера самого текста. Решил проблему так:
    string msg="";
        for (int i = 0; i < 5; i++)
        {
            for (int j = 0; j < 5; j++)
            {
                msg = msg + to_string(rand() % 100) + "\t";
            }
            msg += "\n";
        }
        int sizeofmsg = msg.length(); 
        const char* c_msg = msg.c_str();
        send(newConnection, c_msg, sizeofmsg, NULL);

    Но затем появилась проблема с артефактами. Их я убрал с помощью зануливания принимающего массива на стороне клиента:
    char msg[256];
        ZeroMemory(msg, sizeof(msg));
        recv(Connection, msg, sizeof(msg), NULL);
        cout << msg;
    Ответ написан
    Комментировать