Oprettet lør. d. 05. december 2009 kl. 21:48:52

mbm2007
mbm2007 (7.867 point. Point ude: 30)
www.magnusbm.dk

C++ Winsock - Send og modtag data

Hej eksperter,

Jeg har lige brugt nogle timer på at sætte mig ind i WinSock2, og jeg har så lavet henholdsvis en ServerSocket klasse, og en ClientSocket klasse.

I mit hjemmenetværk kan jeg så komunikere via mit program og mine klasser, men mit problem er at hvis jeg gerne vil have mit program til at snakke sammen med en af mine venners computer, hvordan gør jeg så det?

Når dette problem er løst er målet så at kunne lave et chat room. Jeg har ikke brug for kode, men noget pseudo noget, altså en forklaring på hvordan man kan gøre.

På forhånd mange tusinde tak

Magnus

Skrevet lør. d. 05. december 2009 kl. 21:51:55| #1

arne_v
arne_v (1.005.658 point)
Der er ikke forskel på kode som snakker med en anden computer som står 50 cm ved siden af din og så en computer som står på den anden side af jorden.

Det er stadig IP adresse og port der bruges til addressering.

Men hvis du connecter så skal du connecte til hans eksterne IP adresse (på ydersiden af hans firewall/NAT router) og han skal have lukket op for den port der bruges og han skal forwarde den port til hans PC.

Omvendt hvis han connecter.

Skrevet lør. d. 05. december 2009 kl. 21:56:09| #2

mbm2007
mbm2007 (7.867 point)
www.magnusbm.dk
Nu har jeg fundet min ip adresse, og sidder nu med en arbejds pc med en helt anden ip adresse. Men jeg må indrømme at jeg er taknemmlig for din pseudo forklaring, lige bortset fra at jeg overhoved ikke forstod den.

Som sagt er jeg lige begyndt på WinSock programmering og jeg havde ikke i min vildeste fantasi forestillet mig at det kunne/skulle være så svært at forstå, det du skrev. Så jeg bliver nok nød til at omformulere mig, jeg har vidst brug for helt præcise kode forklaringer i c++.

På forhånd mange tak

Skrevet lør. d. 05. december 2009 kl. 22:06:25| #3

arne_v
arne_v (1.005.658 point)
Det jeg siger er at det slet ikke har noget med C++ at gøre.

Hvis du har et client program og et server program som kan snakke sammen på et lokal netværk, så skal der ikke ændres noget i koden for at de kan snakke sammen over internettet. Det er kun et spørgsmål om at bruge de rigtige IP adresse, åbne op i firewalls, forwarde i NAT routere etc..

Skrevet søn. d. 06. december 2009 kl. 13:10:51| #4

mbm2007
mbm2007 (7.867 point)
www.magnusbm.dk
Ja så meget ahr jeg forstået ;)

Men jeg ved ikke hvordan jeg åbner op i firewalls, forwarder i NAT routere etc.

Jeg ved ikke hvordan MSN gør men det er præcis hvad jeg har intentioner om at lave.

På forhånd tak

Skrevet søn. d. 06. december 2009 kl. 16:34:23| #5

arne_v
arne_v (1.005.658 point)
Du starter din browser angiver URL på management interfacet i den og konfigurerer den som du vil have.

Alternativet er teknikker a la:
  http://www.h-online.com/ (...)

Skrevet lør. d. 12. december 2009 kl. 14:26:19| #6

mbm2007
mbm2007 (7.867 point)
www.magnusbm.dk
Nu har jeg en kode hvor jeg forbinder til min stationære som samtidig kører mit server program som lytter på Ip 0.0.0.0 port 666, jeg er nu på min bærbar og prøver at forbinde til 83.126.78.10 som er vores netværks adresse, som alle vores computere har. Men det jeg får af vide på min bærbar(klienten) er: Kan ikke forbinde til server 83.126.78.10 på port 666

Jeg har endda prøvet at slå firewallen helt fra på min staionære men det hjælper ikke.

Og et andet spørgsmål jeg heller ikke synes besvaret på det gode link du sendte mig, er hvordan, når man forbinder til min stationære ip adresse som jo indeholder flere computere inde under hjemmenetværket. Hvordan finder den ud af hvilken computer beskeden skal sendes til?

Skrevet lør. d. 12. december 2009 kl. 15:04:52| #7

arne_v
arne_v (1.005.658 point)
Er 83.126.78.10 ikke din eksterne IP adresse ?

Jeg vil da tro at dine LAN adresser er 192.168.x.x eller 10.0.x.x !

Skrevet lør. d. 12. december 2009 kl. 20:38:13| #8

mbm2007
mbm2007 (7.867 point)
www.magnusbm.dk
jo jeg kunne bare ikke differentiere mellem Lan adresser og eksterne ip adresse før du skrev det og så googlede jeg det.

Men jeg forstår stadig ikke hvorfor det ikke virker nå jeg åbner mit client program på en computer med en anden ekstern ip adresse end min staionære, åbner mit client program hvori jeg prøver at forbinde til min staionæres eksterne adresse 83.126.78.10

Som sagt har jeg midlertidigt slået firewall'en fra, men min klient siger bare at den ikke kunne forbinde: Socket error = Couldn't connect!

På forhånd mange tak

Skrevet lør. d. 12. december 2009 kl. 20:44:22| #9

arne_v
arne_v (1.005.658 point)
Hvis det er over LAN skal du bruge dine LAN adresser ikke de eksterne IP adresser.

Skrevet søn. d. 13. december 2009 kl. 11:20:01| #10

mbm2007
mbm2007 (7.867 point)
www.magnusbm.dk
Det er ikke over LAN da min bærbar er en computer fra arbejdet, og har en anden ekstern IP.

Men det jeg gerne ville var at kunne lave min stationære om til en chat server, som alle (Også mine venner) kunne oprette forbindelse til via min staionæres eksterne ip adresse. Og det er så det jeg har prøvet men jeg får som sagt den der irreterende meddelelse hele tiden:
Socket error = Couldn't connect!

Og med hensyn til det med LAN adresser, så kan jeg sige at det virke helt perfekt når jeg bruger computernes LAN adresser.

Jeg er bare en smule frustreret ;(

PÅ forhånd mange tak for hjælpen

Skrevet søn. d. 13. december 2009 kl. 21:34:25| #11

arne_v
arne_v (1.005.658 point)
En ekstern IP afhænger ikke af maskinen men af hvor maskinen er placeret.

Hvis maskinerne begge står hjemme hos dig, så skal du connecte til deres interne/LAN IP.

Hvis de står forskellige steder skal du connecte til den eksterne/WAN IP og lukke op & forwarde i firewall/router.

Skrevet tor. d. 29. april 2010 kl. 21:02:58| #12


Skrevet tor. d. 29. april 2010 kl. 21:28:07| #13


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Regex sætning i C++

Oprettet den 30. januar 2012 kl. 22.55
kjeldsted giver 150 point for svar | Giv et svar »

Bog om strukturering

Oprettet den 25. januar 2012 kl. 07.26
keepy giver 30 point for svar | Giv et svar »

Opsnap keypress globalt.

Oprettet den 24. januar 2012 kl. 16.14
xited giver 200 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Her er fem sjove danske websider du skal kende

Trænger dine lattermuskler til en omgang fitness på dansk? Vi viser vej til fem websider fyldt med humor og vanvittig satire.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du snart hente Windows 8

Den nye offentlige betaversion af Windows 8 er klar i denne måned.


Nyheder fra Computerworld

Teaser billede

Måske snart slut med Androids helt store problem

Android-platformen har længe været plaget af et særligt problem. Men måske er problemet nu ved at være elimineret.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger