2010-04-09 1 views
-3

Я хочу сделать клиент P2P Chat, все, что я хочу, чтобы он мог отправлять текстовые сообщения каждому одноранговому узлу.Помогите с созданием программы чата C2 P2P

Я посмотрел на чат Клиент из этого примера: http://www.geekpedia.com/tutorial239_Csharp-Chat-Part-1---Building-the-Chat-Client.html

И мне интересно, если она может быть преобразована в программу p2p? Если да, то как это может быть и кто-то может предоставить какой-то код, так как это поможет.

Если он не может, как я могу сделать действительно простую программу чата p2p? Коды и примеры будут очень полезными.

Кстати я смотрю на эту статью, но это не помогло мне: http://msdn.microsoft.com/en-us/library/ms751502.aspx

+2

Это выходит за рамки вопроса StackOverflow. – SLaks

+0

-1: это не вопрос, это просьба. – ANeves

ответ

-2

Для P2P, вам нужно использовать UdpClient вместо TcpClient. Google должен помочь вам здесь :)

Редактировать: Извините, я сделал ложные предположения в этом ответе. Если вы хотите продолжить использование TCP, все в порядке. Вместо создания отдельного серверного приложения добавьте код сервера в клиентское приложение, чтобы либо отправитель, либо получатель действовал как сервер.

+1

Это не причина, по которой вам нужно использовать UDP для приложения P2P. – TJMonk15

+0

Почему UDP лучше в этом случае? Можете ли вы опубликовать некоторые ссылки? – IVlad

+0

Вы можете использовать TCP и UDP в соответствии со своим сценарием. Если его передача данных, которая не переносит потерю данных, тогда более подходит TCP. Если вы транслируете аудио или видео и можете переносить некоторую потерю данных, вы можете использовать UDP, поскольку он не гарантирует надежную передачу данных, и по этой причине он быстрее. – jaxvy

0

Я сделал аналогичный проект один раз, используя только bluetooth, а не Интернет.
Mine не был так чатом, как IM, так как он разрешал только двум людям разговаривать, но мы получили его, используя технику в редактировании brydgesk и имея клиента («говорящий») и сервер («слушатель») вместе в одном приложении, таким образом, что сервер отправляет полученные сообщения только локальному клиенту, а не ретранслирует все соединения.

Надеюсь, это немного полезно, я не думаю, что это действительно подходящее место, чтобы помочь вам написать все приложение.

+0

Спасибо, что помогли мне понять, я действительно не просил здесь написать целый кусок кода, просто фрагмент того, что я могу сделать. –

0

Если это необходимо сделать в интрасети, почему бы не использовать WCF с именем pipe? Я приводил пример в своем блоге: Create a Intra-Application Named Pipe using WCF in .Net using C#; IPC Communications.. Вам нужно будет использовать не локальные http-привязки, чтобы он не был локальным для машины. HTH

+0

ОП не говорил ничего о интрасети. Похоже на другое сообщение низкого качества со ссылкой на ваш блог. –

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

  • Нет связанных вопросов^_^