Я работаю над одноранговой программой чата, но столкнулся с проблемой: одновременное выполнение клиента и сервера. Я не хочу, чтобы выделенный сервер управлял соединениями. Я считаю, что решение может быть асинхронным прямым подключением, но я не уверен.C# Chat - TCP P2P
То, что я пытаюсь выполнить, состоит в том, чтобы иметь возможность запускать программу между двумя хостами, программа будет запущена и начнет пытаться подключиться к ip-адресу, указанному текстовым полем. В то же время он также начнет прослушивать входящие соединения на IP-адрес localhost.
*** Я использую TCP, потому что на авось что-то испорченное сообщение не сможет прочитать (она зашифрована)
Вопросов: 1) Вполне возможно, может быть клиентом ожидая промежутка времени, прежде чем другая программа попытается подключиться. Так должна ли использоваться какая-то форма цикла? Если да, то как?
2) Предполагаю, что мне нужно использовать многопоточность с одним потоком для части сервера и одним потоком для клиентской части, но проблема не позволяет им висять. Так как обе программы одинаковы, способ быть способ прослушивания и одновременно попытаться подключиться к другому хосту.
3) У меня также возникли проблемы с подключением моего сервера к подключению к нему и не знаю, как автоматически заставить его вытащить ip-адрес с моего компьютера.
Спасибо за любую помощь.
EDIT: Это только в локальной сети.
Вы прочитали это как минимум? http://www.geekpedia.com/tutorial239_Csharp-Chat-Part-1---Building-the-Chat-Client.html – walther