Hacker News new | ask | show | jobs
by cheatdeath 3639 days ago
If anyone's having issues, I've mirrored it at https://cheatdeath.github.io/research-bittorrent-doc/

edit: I'm the author, let me know if you have any questions.

8 comments

Sorry, I didn't update some of the links in the contents correctly when creating the mirror. They should be fixed now – everything is on one page.
I don't know if you've seen it already but some people on reddit talked about some improvements/tips here: https://www.reddit.com/r/programming/comments/4rcss2/buildin...

I agree with most of their sentiments, especially the parsing part could be made cleaner/more C#'ish :)

Otherwise nice work and very interesting writeup!

Thanks for letting me know, looks like I'll have to find some time to implement some of these recommendations.
Great work. Does it work under .NET Core ?
From a quick look at the source [0], it looks like it supports Mono. I can't see anything stopping it being ported to Core, apart from JonSkeet.MiscUtil may not support Core.

If you package this up as a NuGet package and support Core then can you please ping me and I'll add it to https://anclafs.com.

[0] https://github.com/cheatdeath/research-bittorrent

I've been prototyping a .NET Core port. JonSkeet.MiscUtil source code is fine for Core, but for the BitTorrent code we need to change the HttpWebRequest objects to HttpClient and rewrite the Begin/End/IAsyncResult/callback-style to async/await.
I'm not that familiar with .NET Core. It doesn't look like MiscUtil is compatible with it.

The executable project has some minor references to Mono.Posix just so it can catch kill signals while running in the Terminal and die gracefully.

Both dependencies can be removed quite easily from the project.

Definitely having timeout issues on the OP link. Your €3/month hosting from blacknight.com isn't holding up to the HN load, apparently :)

Thank you for the github link. Mods can we get OP link adjusted to the github link instead of what was submitted?

Great to see an alternative to old MonoTorrent! I'm curious why you didn't use async/await instead of the Begin/End/IAsyncResult pattern?
Honestly I'm just not that familiar with async/await. I'll look into modifying it when I get around to making some other changes.
Awesome post/code; might be worth noting that you're the author of the code/post and your willingness to address questions.
Will do, thanks for posting.
Thanks, we updated the link from http://seanjoflynn.com/research/bittorrent.html.
Your name from WoW?
World of Warcraft? Haha no, I've been using that handle probably since that game came out but I've never played it.