connect_() schlägt fehl

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

connect_() schlägt fehl

Beitrag von Mok »

Hallo!
Ich tätige gerade meine ersten Gehversuche mit IPv6 (via WinSocks 2.2), wobei ich versuche mittels IPv6 zu dem bei PB mitgelieferten Network-Server zu connecten. Bei connect_() erhalte ich als Rückgabe immer -1, aber ich komm selbst nicht drauf, was schief läuft.

Code: Alles auswählen

Macro mkword (low, high)
  (low + (high << 8))
EndMacro
#IPPROTO_IPV6 = 41
#AF_INET6 = 23
#TCP = #PB_Network_TCP
#UDP = #PB_Network_UDP
WS2Lib = OpenLibrary (-1,"WS2_32.DLL")
 If WS2Lib
   Prototype.i pInetPton (Family.i, pszAddrString.s, *pAddrBuf)
   Global InetPton.pInetPton = GetFunction(WS2Lib, "inet_pton")
 Else
   Debug "WS2_32.DLL could not be opened!"
   End
 EndIf

Procedure MyIPv6Connection (IPAddress$, Port.u, Mode.i = #TCP)
  Protected s.i = SOCKET_(#AF_INET6, Mode, #Null)
  If s <> -1
    Protected inf.sockaddr_in, buf.q
    InetPton(#AF_INET6,IPAddress$,@buf)
    inf\sin_family = #AF_INET6
    inf\sin_port = htons_(Port)
    inf\sin_addr = buf
    Debug connect_(s,inf,StringByteLength(IPAddress$)) ;<- gibt -1 aus.
  Else
    ProcedureReturn #False
  EndIf
EndProcedure

If WSAStartup_(mkword(2,2),@wsa) ! 1
  MyIPv6Connection("::1",6832)
Else
  Debug "Fehler!"
EndIf
WSACleanup_()
Danke im Voraus,
Mok
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: connect_() schlägt fehl

Beitrag von DarkDragon »

Mok hat geschrieben:...

Code: Alles auswählen

#TCP = #PB_Network_TCP
#UDP = #PB_Network_UDP
...
Bist du sicher, dass die Werte der Konstanten wirklich brauchbar sind für die WinAPI Funktionen?
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: connect_() schlägt fehl

Beitrag von Mok »

DarkDragon hat geschrieben:Bist du sicher, dass die Werte der Konstanten wirklich brauchbar sind für die WinAPI Funktionen?
Ja.

Code: Alles auswählen

Debug Str(#SOCK_DGRAM) + " " + Str(#PB_Network_UDP)
Debug Str(#SOCK_STREAM) + " " + Str(#PB_Network_TCP)
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: connect_() schlägt fehl

Beitrag von DarkDragon »

Hast du IPv6 überhaupt in deinem Netzwerkinterface eingestellt?
http://www.bradan.eu/files/ipv6.jpg

Bei mir gibt dein Code
4294967295
aus.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: connect_() schlägt fehl

Beitrag von Mok »

DarkDragon hat geschrieben:Hast du IPv6 überhaupt in deinem Netzwerkinterface eingestellt?
Ja.
@Topic: Der Source ist alt und falsch, ich werd einen neuen Code zusammenbasteln und dann nochmal posten.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Antworten