Вопрос

Я создаю простое приложение для чата udp lan в vb.net и мне интересно, как мне разбить мои пакеты. Каждый отправленный пакет должен иметь идентификатор, имя пользователя и IP-адрес, с которого он поступает, и, возможно, также командную часть, например, присоединиться или выйти, чтобы обновить мой список пользователей и текстовое сообщение. Я хотел бы знать, как проще всего поместить все это в простой пакет, а затем легко разделить и получить доступ к различным частям из него, когда он получен. спасибо.

Я использую UDP, так как это только в локальной сети, поэтому я транслирую на *. *. *. 255

РЕДАКТИРОВАТЬ: Спасибо за ваш ответ, Джон, но я уже все это знаю. То, что я хочу знать, - это то, что было бы самым простым и мощным способом форматирования моих пакетов, чтобы они включали имя пользователя, идентификатор, команду и текстовое сообщение, а затем пользователь, получивший его, расшифровал его, чтобы показать только сообщение, написанное которым. пользователь или, если это команда типа присоединиться или выйти, чтобы показать соответствующее сообщение о присоединении и добавить пользователя в список для примера.

Это было полезно?

Решение

Я бы, вероятно, просто отформатировал пакет в xml, а затем на принимающей стороне использовал linq to xml, чтобы разделить его. Вы также можете использовать JSON для формата, но это может быть немного сложнее для анализа.

Другие советы

Создайте соответствующий класс с экземпляром метода ToByteArray и статическим методом FromByteArray () (для сериализации в байтовый массив и парсинга из байтового массива соответственно). Затем используйте UdpClient.Send () отправить его и UdpClient. Получить () , чтобы получить его.

Вы можете использовать BinaryReader / BinaryWriter и / или BitConverter , чтобы помочь с ToByteArray и < Методы code> FromByteArray . Вы можете использовать MemoryStream в качестве быстрого потока в памяти для передачи в BinaryReader / BinaryWriter .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top