21. oktober 2003 - 18:59Der er
7 kommentarer og 2 løsninger
Socketforbindelse med eget portvalg
Hej eksperter!
Jeg er igang med at udvikle en simpel chatserver og chatclient, som lige nu kører på et lan. Jeg vil dog gerne afprøve det over Nettet, men er kommet i tvivl om mulighederne, når nu serveren og clienten begge befinder sig bag hver deres firewall. Serveren venter jo på en given port, som er åben for at clienten kan få fat i serveren. Men hvis nu serveren er multithreaded, udskiller den en tråd, som håndterer clientens forbindelse, og det er her min tvivl kommer ind i billedet:
Vælger denne tråd på serveren en tilfældig port, som man måske kunne frygte ikke er åben i firewallen eller er der ingen problemmer i det???
Det er kun hvis der skal laves en yderligere forbindelse fra client til server eller måske en forbindelse fra server til client, at det er relevant med porte igen.
En client og serveren etablerer en forbindelse, som der kommunikeres på samtidig med at serveren venter på flere clients på en bestemt port - det var derfor nærliggende at tro, at serveren og clienten valgte en anden port til kommunikation end den den der bruges til login af andre clienter.
Lad os sige at serveren lytter på port xxxx. Så skal firewallen serverside have åbnet port xxxx. Hvad med clientside? Skal der også åbnes for port xxxx eller er det en anden port som clientside skal have åbnet (som altså serveren svare tilbage på)?
Hvis jeg fx. starter flere clients op på samme maskine får de nemlig hver en localport stillet til rådighed... Kan man vide/bestemme hvilken port clienter lokalt skal benytte eller er det noget, som vælges tilfældigt? (For så skal man vel have denne lokale port åbnet i firewallen, for at serveren kan få fat i clienten???)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.