Netwerkprogrammatie

Voor school ben ik momenteel bezig aan een geïntegreerde proef waarbij ik in Windows in Visual Basic een programma moet ontwerpen voor klantenbeheer, artikelbeheer, beheer van leveranciers, en ook beheer van verkopen en aankopen… We moeten dit doen op basis van de wensen van een spilbedrijf. In ons geval Sportcity. Nu blijkt Sportcity een uitgebreid pakket te gebruiken (Briljant Administrator) dat op meerdere computers draait.

Waarom ook niet? Dan gaan we maar wat netwerkprogrammatie doen in ons project. Maar als je dan op de GiP presentatie komt vertellen dat je bezig bent met netwerkprogrammatie lacht de jury ons gewoon uit omdat we zogezegd geen verstand hebben van zo’n dingen. Volgens die zogenaamde professionals zouden we 2 jaar aan een dergelijk pakket moeten werken.

Nou… diezelfde avond heb ik snel een initiële versie van de netwerkcode geschreven en de dag erna heb ik deze uitgebreid en verbeterd.

Op dit moment kan de huidige netwerkcode meer dan 100 computers tegelijkertijd inloggen op een netwerkserver en elke milliseconde kunnen er gegevens worden uitgewisseld. Om de stabiliteit van de netwerkcode te meten en te testen heb ik een stresstest programma geschreven.

Het resultaat? 0 pakketten niet ontvangen, 8 herstelde pakketten (pakketten die niet op tijd waren of die opnieuw gestuurd moesten worden) en 4448 succesvol verzonden/ontvangen pakketten. Het belangrijkste deel van de netwerkcode is nu af.

Enkele details van de netwerkcode:
- gegevens worden via TCP/IP verstuurd
- gemiste pakketten herstellen zichzelf (mede door gebruik van TCP/IP)
- controle op pakketnummering om alles in de juiste volgorde te houden
- aaneengeplakte pakketten (komt soms voor) worden opgesplitst en afzonderlijk behandeld

We zullen wel eens zien wie er het laatst lacht. Het programma is trouwens open source, dus als je interesse hebt in de programmacode, dan laat je maar iets weten.

VN:F [1.6.3_896]
Rating: 0 (from 0 votes)
Share and Enjoy:
  • Print this article!
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • StumbleUpon
  • Twitter
  1. JanC
    December 10th, 2006 at 16:08 | #1

    Vraagje: waarom wil je die netwerk-code op zo’n laag niveau zelf programmeren, en niet een bestaande oplossing daarvoor gebruiken? (Het is uiteraard en goede oefening als je meer wil leren over TCP/IP, maar is het de beste oplossing als je een administratief pakket moet maken?)

  2. December 10th, 2006 at 16:40 | #2

    Nou, de blogpost is een beetje achterhaald. Het stresstest programma dat ik heb geschreven hield geen rekening met welke gegevens terugkwamen op welke sockets… Blijkbaar zorgt TCP/IP zoiezo voor een stabiele verbinding en een juiste volgorde van de pakketten. Dat is dus een heel stuk code dat weer weg mag. Wat bedoel je met het laag niveau? Ik ben van plan om op OSI laag 6 te werken met de XML standaard. Bedoel je dat?

  3. Vince
    December 12th, 2006 at 21:46 | #3

    Een product van SVB wel te verstaan !

    Wil anders de jury ook nog wel is zien, als het af is natuurlijk :D

  1. December 11th, 2006 at 01:47 | #1