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 |