Avatar billede brunkagen Nybegynder
21. oktober 2003 - 18:59 Der 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???

Håber I er med! :)
Avatar billede riversen Nybegynder
21. oktober 2003 - 19:02 #1
der skulle ikke være problemer i den stil.
Avatar billede arne_v Ekspert
21. oktober 2003 - 19:07 #2
Nej.

Den får socket forbindelsen fra main thread.

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.
Avatar billede brunkagen Nybegynder
22. oktober 2003 - 09:48 #3
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.
Avatar billede riversen Nybegynder
22. oktober 2003 - 09:50 #4
der er heller ingen der har påstået dit spørgsmål er dumt.
Avatar billede arne_v Ekspert
22. oktober 2003 - 10:01 #5
Ja faktisk.

Men den Socket du accept'er af din ServerSocket bruger altså samme port.
Avatar billede brunkagen Nybegynder
22. oktober 2003 - 10:21 #6
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???)
Avatar billede arne_v Ekspert
22. oktober 2003 - 10:51 #7
Med en normal hjemme router/firewall skal der kun lukkes
op for indgående porte d.v.s. at der kun skal lukkes op
den ende der connectes til.

Med en professionel firewall skal der muligvis også lukkes op for
samme port udgående i den ende der connectes fra.

Den port der bruges af client socket betyder ikke noget.
Avatar billede brunkagen Nybegynder
22. oktober 2003 - 18:43 #8
Ok... Jeg vil gerne give jer begge points, så hvis du - arne v - lige poster et svar skulle det være muligt! :)
Avatar billede arne_v Ekspert
22. oktober 2003 - 18:56 #9
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester