Одноранговая передача файлов c # - PullRequest
8 голосов
/ 30 ноября 2009

Эй, я искал в Google, и я не могу найти что-нибудь о передаче между пользователями.

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

Спасибо.

Ответы [ 4 ]

6 голосов
/ 30 ноября 2009

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

3 голосов
/ 01 декабря 2009

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

WebClient.UploadFile(Uri address, string filename)

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

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

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

3 голосов
/ 30 ноября 2009

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

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

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

0 голосов
/ 30 ноября 2009

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

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

...