создавая пакет UDP, я могу разделить - PullRequest
1 голос
/ 10 марта 2009

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

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

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

Ответы [ 2 ]

2 голосов
/ 10 марта 2009

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

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

0 голосов
/ 31 марта 2009

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

...