Помощь, необходимая для общей обработки связи в среде с сообщениями - несколько клиентов! - PullRequest
1 голос
/ 16 июня 2011

Предположим, есть 3 клиента и сервер. Они общаются, используя очередь сообщений, но 3 клиента отправляют различные данные (например, 1-й клиент может отправить целое число, 2-й может отправить строку и т. Д.). Есть ли способ для сервера для общей обработки этого?

Заранее спасибо !!

Ответы [ 3 ]

0 голосов
/ 16 июня 2011

Я бы предложил кодировать данные. JSON обычно подходит для этого. Что вы используете для своей очереди сообщений - если вы еще не взглянули на ZMQ .

0 голосов
/ 16 июня 2011

Я предполагаю, что возможны различные типы данных (иначе как сервер может их обработать).Затем вы можете использовать объединение, например что-то вроде:

union dataU{
    struct datatype1S datatype1;
    struct datatype2S datatype2;
    ...
}
struct messageS {
    int typeId;
    union dataU data;
}

Затем используйте typeId, чтобы определить, на какого члена объединения нужно смотреть.

0 голосов
/ 16 июня 2011

Обрабатывайте все как строку, а затем посмотрите, можете ли вы преобразовать их, если вам абсолютно необходимо (например, вам, возможно, придется преобразовать строку в int для математических операций).можно преобразовать строку в целое число, вы можете использовать atoi , который возвращает ноль при ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...