Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Verbindung herstellen via IPv6

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.07.2010, 11:43 Uhr
~Bautzi
Gast


tach zusammen,

ich hätte da mal ein mittelschweres verständnisproblem zu einer sache die mir mein chef in der praxisphase von meinem studium aufgetragen hat. ich soll durch ein c++ programm (konsolenanwendung reicht) eine verbindung mit einem server, einer internetseite oder was auch immer herstellen und das ganze soll IPv6 kompatibel sein.
jetzt ist mein chef nicht da und ich weiß nicht so richrig wo ich anfangen soll. bin auch c++ technisch noch relativ am anfang ... :confused:
er hat mir anfang noch einen codeausschnitt mit der übertragung via IPv4 geschickt.


Code:
SOCKET ViaConnectConnect(char *host,int port) {
                SOCKET so=INVALID_SOCKET;

                SOCKADDR_IN sad;
                struct hostent *he;
                union u_ipadr {
                               unsigned long l;
                               unsigned char c[4];
                };
                union u_ipadr ipadr;
              
                // ggf. Server-Name nach IP-Adresse auflösen
                if(host[0]>'9') { // nur wenn Name nicht schon eine IP-Adresse ist

                               if(!(he=gethostbyname(host))) {
                                               return(INVALID_SOCKET);
                               }      
                               if(!he->h_addr_list[0]) {
                                               return(INVALID_SOCKET);
                               }
                                                              
                               ipadr.c[0]=he->h_addr_list[0][0];
                               ipadr.c[1]=he->h_addr_list[0][1];
                               ipadr.c[2]=he->h_addr_list[0][2];
                               ipadr.c[3]=he->h_addr_list[0][3];
                }

                so=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); // Socket oeffnen
                if(so==INVALID_SOCKET) {
                               return(INVALID_SOCKET);
                } else {                                                                                                // Socket erfolgreich geoeffnet              
                               //connect to ip address and port
                               sad.sin_family=AF_INET;
                               if(host[0]>'9') sad.sin_addr.s_addr=ipadr.l;
                               else sad.sin_addr.s_addr=inet_addr(host);
                               sad.sin_port=htons(port); // Port
                               if(connect(so,(LPSOCKADDR)&sad,sizeof(sad))) {
                                               closesocket(so);
                                               return(INVALID_SOCKET);
                               }
                }
                return(so);
}    



jetzt würde ich gerne wissen, wie ich das problem am besten angehe. vielleicht hat schon jemand was ähnliches gemacht und kann mir helfen die sache zu verstehen.

danke schonmal im voraus

gruß bautzi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.07.2010, 17:36 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi,
ein guter vergleich für sowas ist hier:

http://people.redhat.com/drepper/userapi-ipv6.html
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.07.2010, 08:14 Uhr
~Bautzi
Gast


hi FloSoft,

besten dank dafür.
ich werd mich mal ein wenig damit auseinandersetzen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: