alanmcgovern / monotorrent

The official repository for MonoTorrent, a bittorrent library for .NET
https://github.com/alanmcgovern/monotorrent
MIT License
1.14k stars 395 forks source link

Is there any xamarin implementation #178

Closed tony683 closed 4 years ago

tony683 commented 4 years ago

As this protable library ,just wanted to ask ,it there any xamarin implementation. I was trying to implement this in Xamarin,but it seems some methods are missing

alanmcgovern commented 4 years ago

This is a .NET standard 2.0 library, so all you need to do is reference the nuget from your xamarin project and it'll just work.

You can also compile from source if you have an IDE which is new enough to support the c# 8.0 language syntax.

What issue are you having?

tony683 commented 4 years ago

I already did that,but downloads are not getting started.Firewall is not an issue. I downloaded bittorrent,was able to dowload torrents...Downloada are getting started, but when i tried through this library ,downloads are not getting started

alanmcgovern commented 4 years ago

Can you share a copy of a torrent that doesn't work?

tony683 commented 4 years ago

here is the project that i am using- https://github.com/nikkonrom/outflow

this one is in wpf,but i was able to convert it in xamarin.forms. but the problem is downloads are not starting. This is the torrent file i want to download- https://drive.google.com/open?id=1SBknMHLaEC6lHO8EndA2TQLz_GnPr_4D

alanmcgovern commented 4 years ago

What program created that torrent? It appears to be invalid for at least 2 separate reasons.

1) The keys in the BEncodedDictionary are not alphabetical, as they must be according to the spec. 2) Even if you attempt to load the torrent with strict decoding disabled [0], the 'Comment' is malformed. When parsed the value is Torrent downloaded from / ( former yts.am/yts.ag )10:created by. As you can see the length of the comment is incorrect and it results in the next key being read in as part of the comment value.

Transmission also cannot open the torrent, neither can https://chocobo1.github.io/bencode_online/.

[0] This is how strict decoding can be disabled when loading a torrent.

var dict = (BEncodedDictionary) BEncodedValue.Decode (new RawReader (File.OpenRead (file), false));
var  torrent = Torrent.Load(dict);
tony683 commented 4 years ago

I downloaded that torrent file from internet (Edit to remove url of unknown legality)

I saw decoding through codes,and I agree with you,but still if a torrent can be downloaded through utorrent , bittorrent etc like other torrent clients,then why this library cannot .

OneFingerCodingWarrior commented 4 years ago

I saw decoding through codes,and I agree with you,but still if a torrent can be downloaded through utorrent , bittorrent etc like other torrent clients,then why this library cannot .

because the library needs contributors like you to make it perfect!

alanmcgovern commented 4 years ago

I saw decoding through codes,and I agree with you,but still if a torrent can be downloaded through utorrent , bittorrent etc like other torrent clients,then why this library cannot .

The torrent you uploaded cannot be downloaded by any torrent client as it is corrupt. Can you double check you uploaded the correct file?

Screenshot 2019-11-19 at 10 30 44
alanmcgovern commented 4 years ago

Actually I think I'll go ahead and close this issue as the problem stated in the title of the issue is not what's being discussed now.

If there is a problem with missing methods, or things not being compatible with Xamarin.iOS, Xamarin.Android or Xamarin.Mac, please reopen this issue and pass on any relevant information. As this is a .NET Standard 2 compatible library I would not anticipate any issues.

If you have issues with specific valid torrents, or just issues in general, please open a new issue with a description of the problem and I'll see what I can do.

Thanks!