Gnutella Forums  

Go Back   Gnutella Forums > Gnutella News and Gnutelliums Forums > General Gnutella Development Discussion
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

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old June 12th, 2002
Mini-God
 

Join Date: June 3rd, 2002
Location: Hell.. Literally
Posts: 241
Gamer
Default VB Gnutella client

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 =)
Reply With Quote
  #2 (permalink)  
Old June 12th, 2002
Senior Member
 

Join Date: August 9th, 2001
Location: Philadelphia, PA, USA
Posts: 369
cultiv8r
Default

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.
Reply With Quote
  #3 (permalink)  
Old June 12th, 2002
Senior Member
 

Join Date: March 24th, 2002
Location: Virginia
Posts: 104
tshdos
Default

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.
Reply With Quote
  #4 (permalink)  
Old June 13th, 2002
Mini-God
 

Join Date: June 3rd, 2002
Location: Hell.. Literally
Posts: 241
Gamer
Default

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!
Reply With Quote
  #5 (permalink)  
Old June 13th, 2002
Senior Member
 

Join Date: August 9th, 2001
Location: Philadelphia, PA, USA
Posts: 369
cultiv8r
Default

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.
Reply With Quote
  #6 (permalink)  
Old June 13th, 2002
Mini-God
 

Join Date: June 3rd, 2002
Location: Hell.. Literally
Posts: 241
Gamer
Default

I found an active x control somebody else made that is great for this type of use =)
Reply With Quote
  #7 (permalink)  
Old June 16th, 2002
Junior Member
 

Join Date: December 14th, 2001
Posts: 13
TorK
Default

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.
Reply With Quote
  #8 (permalink)  
Old June 16th, 2002
Mini-God
 

Join Date: June 3rd, 2002
Location: Hell.. Literally
Posts: 241
Gamer
Default

yea... I've found a somewhat working one under the gpl but its based off 0.4 specs..
Reply With Quote
  #9 (permalink)  
Old June 16th, 2002
Unregistered
 

Posts: n/a
Default

Quote:
Originally posted by Gamer
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.
Would only take a day or two, it's same/same mostly.
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.
Reply With Quote
  #10 (permalink)  
Old June 18th, 2002
Mini-God
 

Join Date: June 3rd, 2002
Location: Hell.. Literally
Posts: 241
Gamer
Default

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.
Reply With Quote
  #11 (permalink)  
Old June 18th, 2002
Junior Member
 

Join Date: June 18th, 2002
Posts: 8
fireforce
Default

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.
Reply With Quote
  #12 (permalink)  
Old June 19th, 2002
Unregistered
 

Posts: n/a
Default

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.
Reply With Quote
  #13 (permalink)  
Old June 20th, 2002
Gnutellian's Avatar
Member: Large
 

Join Date: June 9th, 2002
Location: Maryland
Posts: 15
Gnutellian
Lightbulb

Quote:
Originally posted by Unregistered
And then you waste your time because no one would want a slow, unusable client that is written in BASIC.
What a hater! You sir, obviously do not know much about VB.

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!?
Attached Images
File Type: jpg scnsht.jpg (79.3 KB, 269 views)
__________________
Hey... Where'd my stack space go?...

Last edited by Gnutellian : June 20th, 2002 at 03:44 AM.
Reply With Quote
  #14 (permalink)  
Old June 20th, 2002
Banned
 

Join Date: March 13th, 2002
Location: Aachen
Posts: 834
Taliban
Default

Quote:
If you know what you are doing, there is NOTHING that you cannot accomplish in VB.
Errr, - writing a simple calculator program that works on Solaris systems, cooking tea...
Reply With Quote
  #15 (permalink)  
Old June 20th, 2002
Gnutellian's Avatar
Member: Large
 

Join Date: June 9th, 2002
Location: Maryland
Posts: 15
Gnutellian
Default OK...

There's always one...

Just trying to show that it can be done, and trust me, it's not that hard.
__________________
Hey... Where'd my stack space go?...

Last edited by Gnutellian : June 20th, 2002 at 03:58 AM.
Reply With Quote
Reply



Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
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


All times are GMT -7. The time now is 10:09 AM.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0

Copyright © 2007 Gnutelliums LLC.
All Rights Reserved.