Я немного экспериментирую с библиотекой winsock, создавая довольно простое соединение сервер-клиент.Клиент должен отправлять сообщения на сервер, который должен пересылать их всем клиентам.Каждый клиент должен печатать сообщение только в том случае, если он не является отправителем самого сообщения.
Чтобы идентифицировать сообщения и сериализовать / десериализовать их при отправке через сеть, я создал класс Message, который имеет среди своихчлены std :: string.
Однако у меня возникли проблемы с процессом сериализации.
Для сериализации я использую структуру SerializedMessage:
typedef struct {
int iMessageID;
std::string strText;
} SerializedMessage;
IЗатем хотелось бы создать новый указатель SerializedMessage *, сохранить в нем данные и отправить их через сокет.Хотя я могу легко сохранить идентификатор с помощью функции htonl (), я не знаю, как действовать со строкой.
Пока это мой метод Serialize:
void* Message::Serialize()
{
SerializedMessage* pSerializedMessage = new SerializedMessage();
pSerializedMessage->iMessageID = htonl(m_iMessageID);
//copying the text?
return (void*)pSerializedMessage;
}
IЯ пытался посмотреть здесь , и это должно ответить на мой вопрос, но я новичок, и я не совсем понимаю, что предлагает мне решение.
Буду очень признателен за некоторую помощь.Спасибо!