2008-09-18 13 views

Odpowiedz

3

Powinieneś sprawdzić serializację binarną i wysłać ją przez gniazdo TCP.

dobre wytłumaczenie na różnych typach serializacji:

http://www.dotnetspider.com/resources/408-XML-serialization-Binary-serialization.aspx

Dobry grunt na TCP Client/Server w C#:

http://www.codeproject.com/KB/IP/tcpclientserver.aspx

+0

Drugi link pochodzi z 2001 roku, który był stary nawet wtedy, gdy to pytanie było świeże. To nie jest samouczek i jest bardziej próbką kodu. – YetAnotherRandomUser

0

Jak o użyciu protokołu HTTP lub FTP? Byli do tego stworzeni.

Alex

0

Nie używałbym HTTP ani FTP, dla pojedynczego pliku jest zbyt dużo narzutów i za dużo do kodu, szczególnie mając prosty serwer TCP prawie już stworzony dla ciebie w C#.

2

To zależy, co masz na myśli przez sieć - jeśli kopiujesz w sieci lokalnej, możesz po prostu użyć operacji kopiowania plików w System.IO. Jeśli chcesz wysyłać na zdalne serwery, robię to za pomocą usług internetowych. Kompresuję tablice bajtów i wysyłam je i rozpakowuję po stronie zdalnej. Tablica bajtów jest bardzo łatwa do zapisania na dysku za pomocą strumieni.

Wiem, że niektórzy ludzie wolą ciągi bazowe 64 zamiast bajtów []. nie jestem pewien, czy to ma znaczenie.

0

Gniazda mogą być najlepsza droga, jeśli jesteś po prostu trzeba to zrobić w sieci. Jeśli korzystasz z protokołu TCP, uzyskujesz niezawodność komunikacji, ale wpływ na szybkość. Jeśli potrzebujesz wyższej wydajności, możesz spróbować użyć UDP. Jednak wadą UDP jest to, że dostarczanie pakietów i ich realizacja nie są gwarantowane, więc sam musisz napisać całą tę instalację hydrauliczną.

Jeśli chcesz przesłać pliki przez Internet (programowo i jeśli nie możesz korzystać z FTP), podejście do usługi sieci Web pod numerem MTOM może spełnić Twoje potrzeby.

Jeśli budujesz na systemie Windows Server 2003 R2, Windows Vista lub Windows Server 2008 i wykonujesz wewnętrzne transfery sieciowe, inną opcją jest wykorzystanie nowej funkcji Remote Differential Compression. To nie tylko zapewnia dobrą kompresję pliku, aby zminimalizować ruch w sieci, ale jest również wykorzystywane bezpośrednio przez replikację systemu plików DFS. Downside (jako programista .NET), to technologia COM +.

Powiązane problemy