Witam. Wiem, że jest dużo tematów tego typu,ale nigdzie nie znalazłem odpowiedzi…
Mam w domu sieć LAN (2 komputery) i chciałbym zrobić prosty komunikator. U mnie serwer,a u brata klient, ale bez żadnych buttonów itp. Prosta konsola i wiadomości po kliknięciu enter (to potrafię ). Chodzi mi o samo połączenie. Oczywiście znamy swoje IP… Myślałem nad TCP, ale kompletnie nie wiem, jak się do tego zabrać.
WCF to jest technologia .NET. Możesz przy jej użyciu pisać programy, między innymi. w C#. Mogą to być programy oparte na protokole TCP, HTTP czy też programy peer 2 peer.
Nie wiem na co się ostatecznie zdecydowałeś, ale jeśli na WCF to przeczytaj ten artykuł http://idunno.org/archive/2008/05/29/wcf-callbacks-a-beginners-guide.aspx (na samym dole udostępniony jest kod źródłowy). Żeby host WCF mógł wysyłać dane do klientów usługi WCF (i nie mam tu na myśli działania na zasadzie request/response) trzeba zaimplementować coś co jest określane jako Callback Contract (w zasadzie dopiero dziś się o tym dowiedziałem :D).
Ściągnij sobie udostępniony tam kod źródłowy, skompiluj i odpal WCFServiceHost.exe (ale bezpośrednio z exe, a nie z Visual Studio). Jak już to odpalisz, to w Visual Studio w projekcie MessageSender uaktualnij referencję MessageService (klikasz prawym na nazwę tej referencji i wybierasz Update Service Reference). Jak to zrobisz to podmień jeszcze w tym projekcie w metodzie main te linijki:
Console.ReadKey();
Listener listener = new Listener();
listener.Open();
na
Listener listener = new Listener();
listener.Open();
Console.ReadKey();
Skompiluj ten projekt i odpal kilka jego exe (mając cały czas włączony WCFServiceHost.exe). Następnie w jednym z okienek klienta wciśnij enter (bądź dowolny klawisz) i zobacz co się stanie w okienkach pozostałych klientów.