2013-02-21 4 views
6

Szukam prostego i szybkiego serwera gniazd TCP napisanego w języku C#. Powinien on być asynchroniczny (działać razem z aplikacją WinForms) i obsługiwać asynchroniczne odbieranie/wysyłanie danych do podłączonych klientów. Znalazłem następujące biblioteki, które mogą działać, ale szukam porady na temat konkretnych bibliotek.Prosty i szybki asynchroniczny binarny serwer gniazd TCP?

Próbuję wysłać dane binarne (przy użyciu mojego niestandardowego serializera) z języka C# do interfejsu AS3. Mam gniazdo klienta już napisane w AS3, ale potrzebuję niezawodny serwer gniazd w C#.

który serwer gniazda z której biblioteki korzystałeś z powodzeniem? Czy obsługuje binarne i czy jest niezawodny?

+0

nie wiedząc, co chcesz zrobić, trudno jest odpowiedzieć. Zasadniczo 'Socket' zawiera wszystko, co powiedziałeś ... a [async IO API] (http://msdn.microsoft.com/en-us/library/system.net.sockets.socketasynceventargs.aspx) jest preferowany; ale nie podałeś wystarczających informacji, aby działać tutaj jako komparator. Tak, 'Socket' obsługuje binarne (w rzeczy samej: * tylko * binarne) i tak:' Socket' jest niezawodne ... lub przynajmniej tak samo niezawodne, jak komunikaty sieciowe. –

+0

Co powiesz na moją bibliotekę: http://blog.gauffin.org/2012/05/griffin-networking-a-somewhat-performant-networking-library-for-net/ – jgauffin

Odpowiedz

6

Niektórzy ludzie mogą ci powiedzieć, żebyś sam stworzył wszystko od zera, czego tak naprawdę nie rozumiem jako, jak mówisz, jego DROGI szybszego i łatwiejszego korzystania z biblioteki.

Korzystanie z networkComms.net, zakładając, że chcesz wysłać dane binarne jako bajt [], Przykład prostego klienta - here. Przykład czatu WPF - here. W obu przykładach zamiast wysyłania i odbierania ciągów zastępujesz odpowiednie sekcje bajtem []. "Istotne" powinno być oczywiste na podstawie przykładów i zamieszczonych komentarzy.

Muszę dodać, że jestem programistą tej biblioteki.

+0

Jakie minimum należy użyć? Ponieważ często modyfikuję wszystko, a im mniejsza biblioteka, tym łatwiej ją zrozumieć, a tym samym ją zaktualizować. Czy podfolder 'NetworkCommensDotNet' jest wystarczający w źródłowym ZIP? Czy potrzebuję również wszystkich tych DPS i klas szyfrowania i kompresora? –

+0

Jeśli chcesz mieć absolutne minimum, poleciłbym tylko użycie głównej biblioteki DLL, zamiast martwić się o pobranie źródła. To zawiera minimum wymagane do działania biblioteki. Jeśli brakuje jakichś funkcji, dokładamy wszelkich starań, aby dodać coś na życzenie. – MarcF

+0

W każdym razie, w jaki sposób utrzymuję aktywną instancję serwera i którą metodę wywołuję w celu wysyłania danych do wszystkich klientów na żądanie? (async) –