Seite 1 von 1

connect_() schlägt fehl

Verfasst: 25.02.2011 21:11
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

Re: connect_() schlägt fehl

Verfasst: 25.02.2011 21:15
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?

Re: connect_() schlägt fehl

Verfasst: 25.02.2011 21:21
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)

Re: connect_() schlägt fehl

Verfasst: 26.02.2011 09:37
von DarkDragon
Hast du IPv6 überhaupt in deinem Netzwerkinterface eingestellt?
http://www.bradan.eu/files/ipv6.jpg

Bei mir gibt dein Code
4294967295
aus.

Re: connect_() schlägt fehl

Verfasst: 26.02.2011 11:25
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.