Одноранговая передача файлов c#

Эй, я искал в google, и я не могу найти ничего о одноранговой передаче.

в принципе, я хочу иметь возможность отправить файл с компьютера на чужой компьютер. Кто-нибудь знает каких-либо гидов, которые могут помочь мне в этом?

спасибо.

4 ответов


Если вы действительно просто хотите "отправить файл с моего компьютера на чужой компьютер" с помощью C#, то вы не можете искать истинный p2p. Вы можете просто использовать raw TCP. Для этого вам нужен удаленный компьютер, чтобы слушать для подключения компьютера к открыть подключение к удаленному компьютеру, и начать отправку данных.

есть очень простой пример того, как сделать что-то подобное здесь.

Если вы are на самом деле ищете истинный P2P, тогда вам лучше всего использовать существующую сеть P2P (в противном случае на ней не будет никого, кроме вас и вашего другого компьютера). Есть несколько библиотек C# BitTorrent вокруг-например BitSharp, TorrentNet. Есть целое вопрос о библиотеках BitTorrent, написанных на чистом C#.


Google "Система.Сеть.PeerToPeer", пространство имен, доступное в .NET 3.5 framework. У вас не будет проблем с поиском документов и примеров кода.


если конечный компьютер может предоставить URI для публикации, вы можете просто использовать

WebClient.UploadFile(Uri address, string filename)

Он очень просто принимает URI в качестве адреса (http, ftp, даже протокол файла для передачи в общую папку).

но для этого требуется настроить что-то на стороне сервера для публикации, но это будет платформа, независимая от сервера (например, любой старый FTP-сервер или веб-страница или служба, которая принимает файл методом POST). Безопасность может быть проблемой нужно однако рассмотреть.

это использование модели push. WebClient также можно использовать с другой стороны для загрузки. Он также поддерживает передачу потоков данных, строки и т. д.


посмотрите на этот проект на Проект Код.

Он обеспечивает P2P чат и передачу файлов и может быть либо вдохновением, либо решением.