Toon posts:

[Delphi] Client/server- sockets met router *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Geachte lezer,

ik vraag me iets af. Ik ben bezig met sockets te programmeren in delphi 7, om data over te sturen van client naar server. Dat gaat allemaal redelijk eenvoudig, maar met het gebruik van een router gaat het fout. De data komt niet aan bij de tcpserver. Die localport en remoteport heb ik allen al veranderd en in de router heb ik die poorten al gemapt naar het goeie ip adres van de computer. Ik zie dat er een pakketje binnenkomt op de computer, maar het programma doet er niks mee! (zie ik a.h.v. icoontje netwerkverbinding) Kloppen die poorten dan ineens niet meer, worden die veranderd door het OS ?
Hopelijk kan iemand mij helpen hiermee.
Alvast bedankt voor de reactie !

Met vriendelijke groet

bart. :?

  • Shadowman
  • Registratie: Januari 2002
  • Niet online
Als het wel werkt als de computers direct met elkaar verbonden zijn, maar niet werkt als er een router zit kan het probleem bij de router zijn. Verder heb je de poorten gewijzigd in het programma :? dit kan dan wel problemen geven. Als je bijvoorbeeld met telnet verbinding maakt met het programma komt de data dan wel aan aan beide kanten of alleen bij de tcpserver of het telnetvenster en gaat het verbinding maken ook goed? Als het verbinding maken niet goed gaat dan zou je is moeten kijken of de portmapping wel goed staat.

offtopic:
Groeten hoeft niet.

edit:

Quote:
LordLarry schreef op 12 februari 2004 @ 11:43:
Het de tcp/ip stack past vanzelf de poorten aan. Alle inkomende pakketjes komen op de server listner poort binnen, maar de verder communicatie tussen de server en de client gaat via een ander poortje. Anders zou je maar 1 client per server kunnen afhandelen. Natuurlijk blijft de listner poort voor de server wel op het zelfde nummer staan.

/edit
En over je probleem. Weet je wel zeker dat het niet komt door je router? Als je bijvoorbeeld NAT gebruikt en er komt een pakketje op de router binnen, hoe weet ie dan naar welke computer die heen moet? Dat kan ie alleen weten als eerst van achter de router een pakketje naar buiten is gestuurd.
[/quote]

De TS gaf me de indruk dat hij de poortnummers zelf wijzigde tijdens het runnen van het programma.

[ Voor 44% gewijzigd door Shadowman op 12-02-2004 18:17 ]


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Het de tcp/ip stack past vanzelf de poorten aan. Alle inkomende pakketjes komen op de server listner poort binnen, maar de verder communicatie tussen de server en de client gaat via een ander poortje. Anders zou je maar 1 client per server kunnen afhandelen. Natuurlijk blijft de listner poort voor de server wel op het zelfde nummer staan.

/edit
En over je probleem. Weet je wel zeker dat het niet komt door je router? Als je bijvoorbeeld NAT gebruikt en er komt een pakketje op de router binnen, hoe weet ie dan naar welke computer die heen moet? Dat kan ie alleen weten als eerst van achter de router een pakketje naar buiten is gestuurd.

[ Voor 31% gewijzigd door LordLarry op 12-02-2004 11:45 ]

We adore chaos because we like to restore order - M.C. Escher


Verwijderd

Topicstarter
Heren,

Bij andere applicaties, zoals Pcanywhere werkt het wel met de router, dus het doormappen/linken van poorten naar het goeie lan ip gaat goed. Maar ik heb nu es gebruik gemaakt van Indy componenten en nu werkt het wel. Met een request naar de server applicatie is er direct een verbinding tot stand gebracht en kan er data heen en weer worden verzonden. Dus het probleem is opgelost.
Bedankt voor jullie aandacht.

mvg

b.

  • Schmoove
  • Registratie: Juli 2001
  • Laatst online: 22:53
Wel vreemd.
Ik heb vorig jaar op school met een groep een gedistribueerd multiplayer spel (AirHockey) gemaakt en dat deden we ook gewoon met Sockets.
We hebben hem over het internet geprobeerd (achter routers en alles) en als je de poorten goed mapt is dat helemaal geen probleem.
Het probleem moet haast wel bij de router liggen.

Verwijderd

Topicstarter
Ja ik denk dat die mapping best goed kan zijn maar ik heb al zitten denken dat die poort 5001 of 4001 door het systeem gebruikt wordt. Daarna heb ik het geprobeerd met poort 422 en 423 (willekeurig) en toen werkte het nog steeds niet. Misschien is de router niet in orde, of ook die poorten werden al door het systeem gebruikt. Ik heb alleen maar met m'n eigen router getest, een us robotics. In ieder geval met die IdTCP werkt het wel en het is nog eenvoudiger... In elk geval bedankt voor de moeite.
Pagina: 1