2013-06-20 3 views
0

Хорошо, поэтому я разрабатываю очень простую многопользовательскую игру в .NET, которая будет воспроизводиться по локальной сети.Как отправлять объекты через TcpClient и TcpListener?

Проблема в том, что для того, чтобы игра работала, я должен отправить весь объект. Раньше я сделал чат-систему, используя TcpClient и TcpListener для отправки сообщений. Однако я не уверен, что отправка объектов возможна или даже желательно в этом случае.

При поиске на SO кто-то предложил использовать сериализацию. Однако при некоторых исследованиях я обнаружил, что все классы, объекты которых ссылаются на сериализованный объект, также должны быть сериализованы. Теперь объект, который я должен отправить, содержит довольно много ссылок на другие объекты. Для использования сериализации я должен инфинировать сериализацию почти каждого класса в программе.

Теперь я не уверен, какой подход использовать. TcpClient или сериализовать или что-то еще?

+0

Вам необходимо разработать * проводной протокол * для вашего клиента и сервера: набор правил, чтобы не только сериализовать (необходимые части) объекты и вернуть их на другом конце, но также и правила, которые делают приемник способным для анализа данных, поступающих с сервера. Это необходимо, потому что TCP является потоковым протоколом и не имеет понятия «автономные сообщения». – Jon

+0

не уверен, что я следую за тобой –

+1

Скорее всего, вам нужно читать статьи, а не задавать здесь вопрос, есть слишком много вещей, чтобы объяснить. Начните с простых примеров, например, отправьте карты значений и оставьте объекты на потом. – Jon

ответ

0

Вы можете отправлять объекты, создавая проект WCF. Вам нужно будет изменить объекты, чтобы они были datacontracts, но это может сделать жизнь намного проще, так как вам не нужно делать дальнейшую обработку после того, как вы вызвали веб-сервис.

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