Aktywne Wpisy

uncle_freddie +392
Barcelona 2 - 0 Borussia; Robercik Lewandowski
MIRROR: https://streamin.one/v/3bb19519
#mecz #golgif #fcbarcelona #golgifpl #ligamistrzow
MIRROR: https://streamin.one/v/3bb19519
#mecz #golgif #fcbarcelona #golgifpl #ligamistrzow
źródło: b2r
Pobierz

matixrr +480
Jak Lewandowski strzeli dziś 2 lub więcej goli to wśród plusujących losuję 2 lub więcej pizze!
#mecz #pizzalegia << potwierdzenie legitności rozdajo
#mecz #pizzalegia << potwierdzenie legitności rozdajo
źródło: Lewandowski
Pobierz



Uczę się dopiero i chciałem napisać prosty komunikator oparty o UDP. Tylko, że wyskakuje mi błąd "operacja nie jest dozwolona w gniazdach niepołączonych" w linijce 31.
http://pastebin.com/McGWAsDV
Jeszcze jakby ktoś poświęcił chwilę i napisał o dobrych praktykach w C# i co można było napisać lepiej, to byłbym wdzięczny.
Komentarz usunięty przez moderatora
Komentarz usunięty przez moderatora
Komentarz usunięty przez moderatora
// klasa UdpClient posiada warunkowa metode - Connect
http://msdn.microsoft.com/pl-pl/library - tu pelna biblioteka dokumentacji, tutoriali oraz specyfikacji produktow ms-u
UDP bez konkretnego połączenia wysyła wiadomość wchuj czyli nigdzie. Po drugie, jak na styl, zrobiłbym odrębną klasę np. Server i Client i dodałbym zdarzenia. Dzięki temu będziesz mógł elastycznie zarządzać kodem, podpinając różne metody pod zdarzenia.
Zalecałbym użycie TCP, bo UDP w tym przypadku to jest jak działo na komara - szybkość przesyłu jest większa niż bezpieczeństwo. Chaty nie potrzebują takiej szybkości więc
#codereview miało być chyba do chwalenia się kodem. Ja się tego kodu wstydzę i chcę poprawić żeby działał.
Na razie poprawiłem na tyle: http://pastebin.com/hZaCnTUv .
Nie jestem teraz w stanie sprawdzić, czy działa wysyłanie/ odbieranie, ale nie wywala błędów. Jedyny problem jest taki, że po wpisaniu "/exit" się nie wyłącza, tak jak chciałem.
Po pierwsze: dlaczego dziedziczysz po klasie program? Jaki to ma sens? Klasa do odbierania i wysyłania wiadomości nie ma z nią nic wspólnego. W funkcji Main powinieneś po prostu używać tej klasy (i tak robisz, więc dziedziczenie nie ma większego sensu). Korzystasz w klasie bazowej z klasy, która po niej dziedziczy co na pewno nie jest dobrą praktyką.
Po drugie: na moje oko to są dwie różne klasy, jedna wysyła,
Klasa nie powinna być odpowiedzialna za pobieranie od użytkownika danych (zgodnie z "Don't look for things. Ask for them!"). To czyni ją kompletnie niereużywalną. To samo przy odebraniu wiadomości. Rzucasz tylko event, a zainteresowani mogą robić co chcą z otrzymaną wiadomością. Nawet samo HandleCommand mogło by być poza klasą (to chyba byłby dobry pomysł), może
Przerobiłem to na coś takiego. Niestety przy takim rozwiązaniu nie można podać adresu w formie słownej np "localhost" albo "google.pl". Nie za bardzo wiem jak to obejść.
catch(e)