2012-06-12 3 views
0

Я пытаюсь реализовать сетевой протокол, который прослушивает два отдельных порта TCP. Один - для управляющих сообщений, а один - для сообщений данных. Я понимаю, что мне нужны два отдельных класса протоколов, поскольку задействованы два порта. Я хотел бы иметь один завод, который создает оба этих протокола, поскольку есть информация о состоянии и данные, которые разделяются между ними, и они существенно реализуют один протокол.Один завод для нескольких протоколов?

Возможно ли это? Если да, то как? Если нет, то как я могу достичь чего-то подобного?

Я понимаю, что это не разделение протокола между двумя портами, а то, что является данной ситуацией.

Благодаря

+0

Это идеальная идея, FTP и RTP/RTCP были разработаны таким образом – Francois

+0

Ха-ха. FTP как пример «идеальной идеи». Веселое. –

ответ

0

Ваш завода buildProtocol может вернуть все, что вы хотите, чтобы вернуться. Это зависит от вас.

Однако вы можете обнаружить, что все намного проще, если вы просто используете две разные фабрики. Это не исключает возможности совместного использования. Просто имейте кучу атрибутов или собирайте все ваше состояние вместе на одном новом объекте, и у фабрик есть , что объект.

+0

Как бы у вас был этот объект, разделяемый между двумя фабриками? – weinrea

Смежные вопросы