[VB 2008]Luisteren naar UDP

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Yoram
  • Registratie: Augustus 2004
  • Laatst online: 05-08 14:22
Beste Allemaal,

Voor een thuis project ben ik wat aan het stoeien met een interface van velleman, het gaat hier om de K8055.

Ik wil deze via een UDP commando kunnen benaderen zodat ik hem van afstand via een speciale showcontrol server kan bereiken. Daar ben ik een stukje software voor aan het maken met Visual Basic 2008 Express. Het is één van de eerste keren dat ik met VB2008 aan de slag ben gegaan, dus ik weet er vrijwel helemaal niks van af. Ik heb verder redelijke ervaring met PHP, dus ik begrijp ongeveer wel waar alles op slaat.

Wat ik in eerste instantie wil bereiken is dat er één digitale uitgang aangaat als ik een udp commando stuur iets in de trant van: digitaal1aan.

Nu heb ik al zover dat ik een interface heb met 2 knoppen die een uitgang aan en uit kan zetten. Geen grote moeite omdat dat met de bijgevoegde DLL heel simpel gaat( "SetDigitalChannel(1)" ).

Maar nu kom ik bij het gedeelte van de UDP commando's ontvangen. Na heel wat websites afgestruind te hebben met tutorials over het Winsock Component ben ik niet veel wijzer geworden.

Als ik in VB2008 ga naar Tools>Choose Toolbox Items, kan ik het Winsock Component aanvinken. Er zou dan iets in mijn toolbox aan de linkerkant moeten verschijnen waarmee ik dat winsock geval in me project kan zetten. Alleen ik zie helemaal niks tevoorschijn komen. Als ik andere dingen aanvink zie ik ze wel. Hoe kan ik dat oplossen ?

Daarnaast word ik ook niet echt veel wijzer van de miljoenen tutorials die op het net zwerven, ze zijn niet duidelijk of ze leggen het veels te ingewikkeld uit. Ik heb geprobeerd verschillende tutorials gelezen maar die zijn ook vaak maar voor VB6.0. Dus daar kom ik niet echt uit.

Dus weet iemand ook waar ik een goede tutorial kan vinden?

Sorry voor mijn lange verhaal, maar zo weten jullie waar het over gaat :P.

Alvast bedankt voor jullie hulp!

Hallo!


Acties:
  • 0 Henk 'm!

  • IStealYourGun
  • Registratie: November 2003
  • Laatst online: 25-08 20:13

IStealYourGun

Доверяй, но проверяй

Wat een toeval, voor mijn eindwerk moet ik een service programmeren die staat te luisteren op UDP.
Nog een groter toeval is dat ik het in VB.net moet doen (VB 2008 Express bestaat niet echt ;) )

Het jammerlijke is dat ik nu volop aan de analyse bezig ben en ik pas na midden januari aan het coderen begin, dus voorlopig kan ik je nog niet veel helpen. Ik je wel zeggen dat het niet echt een makkelijke klus is, wil je dat vlot laten draaien dan moet je eigenlijk aan threading doen (iets wat niet bestaat onder PHP).

Edit: Moest je het nodige geduld hebben, dan wil ik wel wat code online gooien zodra het stuk van die service klaar is, verwacht het dan tegen eind januari/midden februari. ;)

[ Voor 14% gewijzigd door IStealYourGun op 15-12-2009 20:34 ]

♥ Under Construction ♦ © 1985 - 2013 and counting. ♣ Born to be Root ★ In the end, we are all communists ♠ Please, don't feed me meat


Acties:
  • 0 Henk 'm!

  • Yoram
  • Registratie: Augustus 2004
  • Laatst online: 05-08 14:22
Hmm oke, ik dacht dat het zo simpel was dat het gewoon niet te vinden is op google :P

Maar wat een toeval, grappig. Ik moet je zeggen: Visual Basic 2008 Express bestaat toch echt wel. Maar ik denk dat jij de naam van de taal bedoelt. Ik heb het over het programma waarmee ik werk.

Ik heb trouwens wel wat gevonden wat volgens mij doet wat ik wil. Bij deze link staat een stukje code wat data ontvangt van een UDP server.

Alleen weet ik nu niet echt hoe ik het moet toepassen, dat ga ik eens uitzoken.

Hallo!


Acties:
  • 0 Henk 'm!

  • IStealYourGun
  • Registratie: November 2003
  • Laatst online: 25-08 20:13

IStealYourGun

Доверяй, но проверяй

LOL @ VB 2008 Express, wist niet dat het bestond.

De code die je daar toont is een prachtig voorbeeld, het enige probleem is dat het programma stopt, zodra het een bericht heeft ontvangen. Daarom dat je threading het best toepast, toch zoals ik het had verstaan.
Volgend jaar zal ik je er (hopelijk) meer over vertellen.

♥ Under Construction ♦ © 1985 - 2013 and counting. ♣ Born to be Root ★ In the end, we are all communists ♠ Please, don't feed me meat


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
De UDPClient is inderdaad de class waar je naar op zoek bent. Verder valt er genoeg informatie te vinden. Een mooie plek om te starten is gewoon de MSDN: http://msdn.microsoft.com...et.sockets.udpclient.aspx

Verder zullen er ook vast genoeg tutorials te vinden zijn.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • DEiE
  • Registratie: November 2006
  • Laatst online: 16-08 19:21
Wij hebben op school in Java verbindingen via sockets moeten maken, met tcp.
Wat wij daarbij deden, was dat er een thread luistert voor binnenkomende connecties. Probeert er iemand een connectie te openen, dan maakten wij een nieuwe thread aan, en handelden daarin de connectie af, en daarna sloten we de thread weer. Op die manier blijft het progje draaien en kan het meerdere verbindingen na elkaar / tegelijk afhandelen.

Wellicht is een soortgelijke aanpak in VB ook te realiseren :)

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Voor een relatief klein aantal verbindingen is een dergelijke tactiek wel te doen. Als je echter naar een groter aantal verbindingen gaat kun je beter gaan kijken naar de asynchrone calls.

Maar voordat je uberhaupt gaat kijken naar hoe je het met threads en alles op gaat lossen, moet je natuurlijk eerst kijken hoe je een verbinding op gaat zetten, en hoe je data verzend/ontvangt.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 16-09 22:43
IStealYourGun schreef op dinsdag 15 december 2009 @ 20:31:
Ik je wel zeggen dat het niet echt een makkelijke klus is, wil je dat vlot laten draaien dan moet je eigenlijk aan threading doen (iets wat niet bestaat onder PHP).
UDP communicatie is zo oud als de weg naar Rome, iig ouder dan de huidige quadcores met super duper quadruple hyperthreading shizzle. Kortom, een single threaded UDP server of client schrijven is (bijna) peanuts en zal waarschijnlijk eerder gelimit worden door io bandbreedte dan CPU power.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Misschien ook handig leesvoer: Which I/O Strategy Should I Use?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1