Notes: Suicide NET readme This code is presented so others may benefit from my work. This is a pet project so anyone interested may contribute and my contributions will be intermittent. How to compile: I use NUnit, a testing software package. It’s free, open source and works very well. The program will not compile without it. There are two ways to get this to work; either install it from the web site www.nunit.org or use the included dlls. If you install it your self you will need to make a copy of nunit-gui.exe and rename it to nunit-gui.dll, this is so the gui can be launched from code in the startup routine. Once you open the project you need to add references to nunit-gui.dll and nunit.framework.dll. After this, the project should be ready to compile. Usage notes: When it launches you will be asked if you want to test. Click yes and you will get the NUnit gui where you can run all the tests in the system. Some of them work intermittently. But you should be all green, if not then run again, if they stay red then there is a problem, it’s up to you the co-developer to find and squash it. If you select no for testing you will launch the program. The interface is WEAK and simple. The functionality if barely proof of concept. But it should be enough for you too see how it’s done. As the pong caching scheme seems to fail on finding good connections I strongly suggest you run another established client for Suicide.NET to connect to. The database is an Access database so you can open it and play with it. The copy in the bin folder is the one that is used. Auto-connect sucks. I’m not sure why. Please help :) Codeing notes As was mentioned earlier Nunit is used heavily for the non gui elements, please continue to do so. It’s easy to learn and use and very helpful. Especially when working on a section it’s useful to determine if you have damaged anyone else’s work. Some testing takes some creative thinking. There are a few dat files in the bin folder; these are used by the network tests. They contain the raw bit stream of real gnutella packets. I’ve tried to modularize everything I could. I would like to continue this trend. Also there is extensive use of namespaces, another feature I could like to see continued. ToDo: This is a long list. Here are some highlights Downloads Uploads File Management Separate the core and gui threads And much much more Here a current (ish) listing of the internal todo list SuicideNET\Core\DebugTracer.vb(177): TODO: Load Line number here SuicideNET\Interface\Form1.vb(321): TODO: Make this a ini file setting SuicideNET\Interface\Form1.vb(326): TODO: This should probably be elsewhere (when we seperate core/gui it will go with core SuicideNET\Network\Connection.vb(224): TODO: VENDOR BEAR HORIZON put real shareing number here SuicideNET\Network\PacketTypes.vb(356): TODO: QUERY HIT Read extra QueryHit data SuicideNET\Network\PacketTypes.vb(409): TODO: QUERY HIT Send additional Data on the end of QueryHits SuicideNET\Network\PacketTypes.vb(539): TODO: QUERY SUBHIT Try and grab human readable extra data SuicideNET\Network\PacketTypes.vb(623): TODO: BYE Bye tobytes SuicideNET\Network\PongCache.vb(97): TODO: PONG CAHCE: Send pong for all connections except C, to C SuicideNET\Network\PongCache.vb(236): TODO: PONG CAHCE Check to see if I can accept connection, if Ping.ttl =1 send pong regardless SuicideNET\Network\PongCache.vb(243): TODO: PONG CACHE Return Real amount of files SuicideNET\Network\PongCache.vb(244): TODO: PONG CACHE Return Real size of files SuicideNET\Support\NUNITTests.vb(27): TODO: TEST Rewrite this test SuicideNET\Support\NUNITTests.vb(77): TODO: TEST Wrtie Query test SuicideNET\Support\NUNITTests.vb(230): TODO: TEST Verify that pings get sent to other connections SuicideNET\Support\NUNITTests.vb(231): TODO: TEST Implement then Test that PC send a pong for each connected client when ping.ttl = 2 SuicideNET\Support\NUNITTests.vb(367): TODO: TEST Write PongCache_RecPing_SendPing test Changes: 0.10 Initial Release 0.11 11/14/02 * Trace overhaul * Testing cleanup * Documentation (what little there is) Contact: If you need to contact me you may do so at suicide.10.zelus@spamgourmet.com. That is a self distructing e-mail from www.spamgourmet.com so if it gets into the wrong hands (spam) it will expire. If I do not respond in a timely manner try YOURNAME.10.zelus@spamgourmet.com and you should get through.
Changes:
Copyright © 2010 Geeknet, Inc. All rights reserved. Terms of Use