Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [VB6] Client/server (https://forum.scholieren.com/showthread.php?t=210983)

oneMen 08-09-2002 18:39

[VB6] Client/server
 
Ik ben nu aan het proberen een spelletje aan het maken voor een thuisnetwerk. Het probleem is dat 1 comp XP heeft draaien en Winsock (dus) problemen kent.

Ik heb al iets geprobeerd met textfiles versturen naar elkaar en dat moet lukken... maar het is lastig om elke keer IPs in te gaan voeren dus ik had al geprobeerd om een soort IPcheck systeem met error-trapping te maken, maar dat gaat te langzaam.

Kan iemand me helpen..? Een voorbeeldprog/game zou zeer welkom zijn..

Bvd

Marijn

McMotion 08-09-2002 20:43

IPcheck systeem met error trapping? :confused: ik snap het niet echt

wat bedoel je nou? kan je niet gewoon via TCP communiceren omdat XP een andere winsock heeft ofzo? :confused:

Marcade 08-09-2002 22:25

Ik snap ook niet waar je het over hebt. Je neemt gewoon MSWINSCK.OCX en gebruikt dat om een TCP/IP connectie op te zetten (?)

Text files?!?

WinXP kan, net als andere windows, voor zover ik weet ook gewoon gebruik maken van MSWINSCK.OCX

McMotion 09-09-2002 00:25

je kan vanuit VB toch ook gewoon de meeste API calls aanroepen? dus ook winsock calls zonder van ActiveX controls ofzo gebruik te maken? in dat geval staan er meer dan genoeg voorbeelden op internet :)

Marcade 09-09-2002 10:40

Citaat:

McMotion schreef:
je kan vanuit VB toch ook gewoon de meeste API calls aanroepen? dus ook winsock calls zonder van ActiveX controls ofzo gebruik te maken? in dat geval staan er meer dan genoeg voorbeelden op internet :)
Winsock lijkt me makkelijker?

McMotion 09-09-2002 10:41

Citaat:

Marcade schreef:


Winsock lijkt me makkelijker?

jah lijkt me ook.. maar 'k heb nog nooit met mswinsck.ocx gewerkt

Marcade 09-09-2002 12:47

Citaat:

McMotion schreef:


jah lijkt me ook.. maar 'k heb nog nooit met mswinsck.ocx gewerkt

Je voegt het toe en de meeste dingen spreken vanzelf.

winsock1.remotehost="computer adres"
winsock1.remoteport=[poortnummer]
winsock1.connect

winsock1.senddata "blah"

.. dat soort stuff. En de andere computer doet gewoon

winsock1.localport=[poortnummer]
winsock1.listen

enzo. UDP gaat zelfs nog makkelijker want dan hoef je niet een connectie te leggen. Daar is het gewoon kwestie van een port binden,remoteIP en poort meegeven en dan gewoon lekker data versturen. Maar ja, je weet dan niet of het aankomt.

Als er data aankomt word er een event getriggered. Winsock1_receivedData enzo.

Marcade 09-09-2002 12:48

Ik heb met API's wel is pings gedaan, en ook wel is bestanden opgehaald van Inet, maar het nadeel was dat terwijl de api bezig was, je hele programma bevroren was. :S

Ik weet niet of dat ook zo is met wat jij bedoelt.

McMotion 09-09-2002 13:38

ja ok, dan moet je OF de netwerkoperaties in een aparte thread uitvoeren, OF je moet non blocking calls gebruiken... die ActiveX control maakt natuurlijk onderwater ook gebruik van de API, alleen die regelt dat allemaal voor je

oneMen 11-09-2002 10:05

*deelt nog even tussen de regels door mede dat deze jongen toch wel een beginner is in Visual Basic.*

Ok eerst had ik dus geprobeerd om met Winsock (gewoon) data naar elkaar te versturen en leek er geen probleem te zijn.

Tot ik het programma testte op een WinXP systeem en die gaf de melding geen mswinsck.ocx te kunnen vinden. OK, ik een setup gemaakt zodat alle benodigde files wel geinstalleerd zouden worden. Toen was het probleem dat de ene computer files kon verzenden wat ie wou, bij de andere werd geen Winsock1_receivedata of iets dergelijks getriggered en dus ook geen data ontvangen. Winsock werkte dus niet en waarom? dat kunnen jullie mij misschien vertellen...

Dus bedacht ik een alternatief en dat is om doodleuk de variabelen die verzonden moesten worden op te slaan in het bestand "\\<IP van andere comp>\\c\spelletje\transfer.txt" Deze comp kan dat inlezen en zo gaat ie verder.

Op deze manier is het best te doen zo is gebleken.
Om te voorkomen dat je de hele tijd IPs aan elkaar moet gaan vertellen had ik dan een soort IPcheck progje gemaakt dat ik dacht dat wel zou werken. Dat gaat als volgt: IPs in een netwerk hebben altijd dezelfde basis (de twee eerste getallen zijn gelijk) en de laatste twee getallen zitten (altijd toch??) tussen 0 en 400. Dus voer je een bewerking uit op een bepaald IP waarvan je wilt weten of hij bestaat zoals Dir() of FileCopy() en indien dat IP niet bestaat zal er een error ontstaan. Het programma gaat naar de ErrorHandler als de IP niet bestaat (check volgende IP) en gaat verder met het programma als het niet bestaat (sla IP op en check volgende IP).

Het probleem hiermee was dat de ene keer het redelijk snel ging, maar meestal duurde het even voordat de error werd gegeven en dan duurt 16000 errors wel erg lang...

Maar goed... dit is dus allemaal geknutsel van iemand die er weer geen verstand van heeft... Iemand een oplossing voor het winsock probleem of een voorbeeldprogramma dat communiceert tussen twee comps?

Bvd

McMotion 11-09-2002 12:40

Citaat:

M n M schreef:
IPs in een netwerk hebben altijd dezelfde basis (de twee eerste getallen zijn gelijk) en de laatste twee getallen zitten (altijd toch??) tussen 0 en 400.
het ligt eraan wat voor netwerk je hebt... bij een class A netwerk bijvoorbeeld hoeft alleen het eerste getal gelijk te zijn, en bij een class C netwerk zijn de eerste 3 getallen gelijk..
en zowieso zijn alle getallen nooit hoger dan 255

Marcade 11-09-2002 14:44

Ik heb geen problemen ondervonden met winsock onder XP.

Maar ik had over het algemeen een probleem met XP en zit gewoon weer fijn op W2K.

*snapt niet dat die toch zoveel mensen op XP ziet zitten zonder problemen*

oneMen 11-09-2002 21:25

Citaat:

McMotion schreef:


het ligt eraan wat voor netwerk je hebt... bij een class A netwerk bijvoorbeeld hoeft alleen het eerste getal gelijk te zijn, en bij een class C netwerk zijn de eerste 3 getallen gelijk..
en zowieso zijn alle getallen nooit hoger dan 255

Ok tnx... maar goed ik denk dat het dan bij mij altijd voorgekomen is dat ik een B netwerk heb want altijd de laatste twee verschilden (169.256.90.91 en 169.256.98.77 bijvoorbeeld)

siem85 13-09-2002 19:17

Ik heb al best veel met winsock gedaan.
Check ff of je de data naar de goede poort zendt, dwz. dat de sender dezelfde poort moet hebben als de receiver.

Marcade 14-09-2002 00:20

Citaat:

siem85 schreef:
Ik heb al best veel met winsock gedaan.
Check ff of je de data naar de goede poort zendt, dwz. dat de sender dezelfde poort moet hebben als de receiver.

moet je het wel behoorlijk uitleggen.

oneMen 15-09-2002 18:11

Moeten ze dezelfde poort gebruiken? of gewoon dat de client naar de oipen poort van de server connect?

JJzD 15-09-2002 21:28

Citaat:

M n M schreef:


Ok tnx... maar goed ik denk dat het dan bij mij altijd voorgekomen is dat ik een B netwerk heb want altijd de laatste twee verschilden (169.256.90.91 en 169.256.98.77 bijvoorbeeld)

thuis netwerken hebben toch altijd 192.188.x.x basissen??
en dat kan je zelf instellen meestal als je een thuisbnettwerk hebt

Triloxigen 15-09-2002 21:32

Citaat:

JJzD schreef:


thuis netwerken hebben toch altijd 192.188.x.x basissen??
en dat kan je zelf instellen meestal als je een thuisbnettwerk hebt

nee hoor..
meeste hebben 192.168.xxx.xxx
of 10.xxx.xxx.xxx

En zoals je zegt, kun je zelf instellen :)

JJzD 15-09-2002 23:32

Citaat:

McLaren schreef:


nee hoor..
meeste hebben 192.168.xxx.xxx
of 10.xxx.xxx.xxx

En zoals je zegt, kun je zelf instellen :)

tiebvaut :)

McMotion 16-09-2002 08:38

Citaat:

M n M schreef:
Moeten ze dezelfde poort gebruiken? of gewoon dat de client naar de oipen poort van de server connect?
die laatste


Alle tijden zijn GMT +1. Het is nu 13:16.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.