Хорошо, поэтому я разрабатываю очень простую многопользовательскую игру в .NET, которая будет воспроизводиться по локальной сети.Как отправлять объекты через TcpClient и TcpListener?
Проблема в том, что для того, чтобы игра работала, я должен отправить весь объект. Раньше я сделал чат-систему, используя TcpClient
и TcpListener
для отправки сообщений. Однако я не уверен, что отправка объектов возможна или даже желательно в этом случае.
При поиске на SO кто-то предложил использовать сериализацию. Однако при некоторых исследованиях я обнаружил, что все классы, объекты которых ссылаются на сериализованный объект, также должны быть сериализованы. Теперь объект, который я должен отправить, содержит довольно много ссылок на другие объекты. Для использования сериализации я должен инфинировать сериализацию почти каждого класса в программе.
Теперь я не уверен, какой подход использовать. TcpClient
или сериализовать или что-то еще?
Вам необходимо разработать * проводной протокол * для вашего клиента и сервера: набор правил, чтобы не только сериализовать (необходимые части) объекты и вернуть их на другом конце, но также и правила, которые делают приемник способным для анализа данных, поступающих с сервера. Это необходимо, потому что TCP является потоковым протоколом и не имеет понятия «автономные сообщения». – Jon
не уверен, что я следую за тобой –
Скорее всего, вам нужно читать статьи, а не задавать здесь вопрос, есть слишком много вещей, чтобы объяснить. Начните с простых примеров, например, отправьте карты значений и оставьте объекты на потом. – Jon