Одноранговая передача файлов 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 чат и передачу файлов и может быть либо вдохновением, либо решением.