2012-04-23 4 views
0

Я работаю над одноранговой программой чата, но столкнулся с проблемой: одновременное выполнение клиента и сервера. Я не хочу, чтобы выделенный сервер управлял соединениями. Я считаю, что решение может быть асинхронным прямым подключением, но я не уверен.C# Chat - TCP P2P

То, что я пытаюсь выполнить, состоит в том, чтобы иметь возможность запускать программу между двумя хостами, программа будет запущена и начнет пытаться подключиться к ip-адресу, указанному текстовым полем. В то же время он также начнет прослушивать входящие соединения на IP-адрес localhost.

*** Я использую TCP, потому что на авось что-то испорченное сообщение не сможет прочитать (она зашифрована)

Вопросов: 1) Вполне возможно, может быть клиентом ожидая промежутка времени, прежде чем другая программа попытается подключиться. Так должна ли использоваться какая-то форма цикла? Если да, то как?

2) Предполагаю, что мне нужно использовать многопоточность с одним потоком для части сервера и одним потоком для клиентской части, но проблема не позволяет им висять. Так как обе программы одинаковы, способ быть способ прослушивания и одновременно попытаться подключиться к другому хосту.

3) У меня также возникли проблемы с подключением моего сервера к подключению к нему и не знаю, как автоматически заставить его вытащить ip-адрес с моего компьютера.

Спасибо за любую помощь.

EDIT: Это только в локальной сети.

+0

Вы прочитали это как минимум? http://www.geekpedia.com/tutorial239_Csharp-Chat-Part-1---Building-the-Chat-Client.html – walther

ответ