![]() |
| | |||||||
| Register | FAQ | Members List | Calendar | Arcade | Search | Today's Posts | Mark Forums Read |
| General Gnutella Development Discussion For general discussion about Gnutella development. |
|
Welcome to Gnutella Forums. You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is fast, simple and absolutely free so please, join our community today! If you have any problems with the registration process or your account login, please contact contact us. Once registered but before posting, members need to read the Forum Rules (click here) and LimeWire/FrostWire users should include System details - help us to help you (click on blue link) in their posts if their problem relates to using the program. Thank you |
| | LinkBack | Thread Tools | Display Modes |
| |||
| I'm considering making my own gnutella client in VB in the near future, but do have some questions concerning it: Anybody know if there is a physical reason this cant or shouldnt be done, IE: Very high cpu or mem usage? Will the winsock control VB uses have any issues? Thanks =) |
| |||
| Actually, have a look at http://www.gnutelladev.com. There's a section of published Gnutella code, and you can find some VB versions around there. Could either continue building on top of it, or use it as an example. I'm not a VB programmer though, but I know that VB is quite well capable for writing a Gnutella client. The now defunct GnOtella client was written in VB.
__________________ Okay, so I've been gone a while - but hey, meanwhile online translators have gotten better: Ce n'est pas ma faute. Blâmer vous-même. ---- Ne me blâmez pas. Blâment votre individu. |
| |||
| Some minor problems with VB Apps: Lack of multi-threading: Causes problems if you get into a long process that doesn't give up processor time to update the UI (DoEvents). In an app such as this it would be more of a problem than usual. If you carefully create your functions it can be overcome easily. Dependency Files: Large runtime files that have to be distributed with your App. Can't really get around this unless you make to distributions of your app, one with the runtimes and one without. API Calls: Depending on the function some API calls can block not allowing your client to update the UI. This can be avoided by simple testing. Winsock Control: Simple to use and no REAL issues with this type of app. You could look for a better one. Gnotella used a different winsock control (library) but I can't remember the name but it might have been a custom control. There is no reason you can't make a client using VB. The limitations I mentioned above all have some type of workaround (except maybe the dependencies). The examples on gnutelladev (at least the last time I looked) are quite old but could be used as a generic example. You could write it in VB.NET but then your dependency files would become even larger (Look at Swapper), but all of the problems above disappear. If you know C++ that would be of much help because you could write a library or control to handle alot of the things VB is not so great with. Even though many people claim that VB sucks it is damn good at making programs. There are still people who claim Gnotella is the best client ever written, just visit the Gnotella forum. |
| |||
| Thanks for the replies =) VB6 sp5 runtime is 1mb, that isn't so bad and will be what I use most likely. Unfortunately I know very little C++ and wont be able to make too many custom controls for myself, but the ones vb already has and possibly a few already established ones would do. As I side note, I liked Gnotella a lot back in its early beta days right when napster had its downfall [compared to limewire and bearshare] =) Hopefully I can get it to all work out! |
| |||
| Based on tshdos' comments, you'd definitely want to look into event driven actions and asynchronous sockets. Didn't know VB had a poor support for multi-threading. But I guess that you can use the WinAPI to make your own thread wrapper, check MSDN library how to use the thread calls.
__________________ Okay, so I've been gone a while - but hey, meanwhile online translators have gotten better: Ce n'est pas ma faute. Blâmer vous-même. ---- Ne me blâmez pas. Blâment votre individu. |
| |||
| One of the biggest problems, i think, is that VB is not very godo at binary stuff. Bitmasks, endianness, hashtables, etc. get very tricky. Even simple things like reading nul-terminated strings requires quite a lot of code. There have been Gnutella projects in VB, but as far as I know none of them have bee nupdated for a long time. The Gnutella protocol has been developed a lot since then. |
| |||
| Quote:
Why did the public fool system make us all think it's so darn hard to learn something new? I am telling you it's not that hard, go get book programming C in 24 hrs or something like that. Then you can just take the gnucleus code and start on something that is already working instead of re-inventing the wheel. |
| |||
| c++ and vb are entirely different, I'm guessing your the same person making ignorant and rude remarks all over this forum. I know some c++ but dont have the time to learn more about it, nor would I need to buy a book when I have 800mb of help files. |
| |||
| I too am interested in doing the same thing. I have also found many probs with it. From what I see, I dont think VB is fast enough to do all the work needed without putting a huge drain on the system. The only way I can see is to write a DLL that does alll the hard work, but that would require C or C++. You and me are in the same boat. Right now I am pushing my VB6 and database training to get a job and dont have the time right now to learn a new language. As for the two VB gnutella projects I found, neither work. Vbgnutella is garbage. And Coyotella although it will run, wont connect. I got one connection one time and lost it a second later. Never got it back. VB itself just doesnt seem powerful enough for this kinda work. Al least not by itself. To make a VB friendly environement someone would have to write a VBGnu control that would plug right in to a VB app just like you plug the winsock control into one. VBs threngths seem to be in databases, office and/or corporate apps. But from what I hear about VB.Net that may be changing. |
| |||
| You don't have time but yet you want to program a gnutella client from scratch? And then you waste your time because no one would want a slow, unusable client that is written in BASIC. So why not start with a advanced already written client and just add the few things you want to do that are special to you? If you spend the time you would have wasted writing things from scratch and learn a little C, then you will be worth more in the "marketplace" because you can develop REAL products that are professional and usable in a business, instead of stuff for play. What I really don't understand is why you think it will take so much time to learn C. You haven't even tried but yet you think it will take away from your TV or party time, that would be sad indeed. |
| ||||
| Quote:
The image you see below is a PURE VB client written by me. No C++ 'helper' dll's, PURE VB. If you know what you are doing, there is NOTHING that you cannot accomplish in VB. I could have written this in MSVC++6 (I own visual studio 6 enterprise edition.), But I felt like a challenge. I bet you don't even know C/C++. It can be done, and it's not that difficult. The biggest thing I would stress is research, research, reasearch. Not for old VB examples, but on the gnutella protocol itself. The research alone took me almost a month. The client is only about 15 days old so far. Oh yeah, It's not slow, and it's not unusable. Not even in the IDE. PS. I'm the one who found a serious bug in Bearshare 2.6.2, see thread: This is wierd!?
__________________ Hey... Where'd my stack space go?... Last edited by Gnutellian : June 20th, 2002 at 03:44 AM. |
| Thread Tools | |
| Display Modes | |
| |
| | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Gnutella client name... | errorlevel | General Gnutella / Gnutella Network Discussion | 3 | August 2nd, 2002 11:18 AM |
| How many Gnutella client are there? | dimagor | General Gnutella / Gnutella Network Discussion | 8 | May 18th, 2002 04:01 AM |
| Gnutella itself--not a client | Unregistered | General Gnutella / Gnutella Network Discussion | 3 | May 15th, 2002 07:21 AM |
| DOS Gnutella Client!!! | CyberBug84 | General Gnutella / Gnutella Network Discussion | 10 | July 18th, 2001 07:33 AM |
| The Best Gnutella Client | Unregistered | General Gnutella / Gnutella Network Discussion | 0 | July 9th, 2001 05:36 PM |