MS-Winsock control hat n paar FATALA makken!
Daher würde ich dir empfehlen ein eigenes Steuerellement zu coden! (Für Clients)
Für Server kannste das von MS her nehmen!
Habe grad keinen Code da, den Ich veröffentlichen möchte, daher schreib ich mal schnell was ähnliches! (Bitte verzeit mit kleine Fehler)
SERVER: (WEB)
=============
Benötigt:
Winsock1
Winsock2(index)
=CODE=
Code:
Private Sub Form_Load()
Winsock1_Close
end Sub
Private Sub Winsock1_Close()
if Winsock1.state <> sckClosed then
Winsock1.Close
endif
Winsock1.RemoteHost = 127.0.0.1
Winsock1.RemotePort = 80
Winsock1.LocalPort = 80
Winsock1.Listen
End Sub
Private Sub Winsock1_ConnectionRequest(requestiD as long)
Dim X as long
for x = 0 to 100
if winsock2(x).state = sckclosed then
winsock2(x).accept requestid
next
winsock1_close
end sub
Private Sub Winsock1_Error(number as integer, Description as string)
winsock1_close
end Sub
Private Sub Winsock2_Close(Index as integer)
Winsock2(index).close
end sub
Private Sub Winsock2_Error(index as integer,number as integer, Description as string)
Winsock2_close index
end sub
===============================================
CLIENT
Als client solltest du dir n eigenes Steuerellement schreiben, da das von MS den fehler hat, bei einem "Internen"Fehler, oder bei einem falschen commando sich nicht richtig zu Terminieren!
HEIST: Nach dem Beenden einer verbindung (via Error oder END Befehl) kann es passieren, das sich bei dem versuch, die verbindung erneut zu erstellen, eine fehlermeldung ausgegeben wird! (Verbindungsversuch gescheitert oder so, FEHLER: Port bereits in benutzung! oder so)
Das Liegt daran, das in der IP-Port-Tabelle von Windoff die verbindungsdaten der letzten connection nicht gelöscht wurden!, was zur folge hat, das dein steuerellement die meldung aus gibt,: das diese Daten bereits in benutzung sind!
Dies kann man NUR umgehen, indem man ne zeitlang wartet, ca. 5min. oder länger ... oder den rechner neu startet!
Allerdings gibts da auch noch die möglichkeit, sich selbst ein Control zu schreiben!, oder die vollnutzung von APIs!
Ich hab mir n steuerellement geschrieben, das erleichtert das ganze ENORM!
Da ich in dem OCX noch einiges hinzu geschrieben habe, das ich nicht unbedingt veröffentlichen möchte, kann ich nur empfehlen, das Ihr mal n Blink in "API-Guide" werft!
Dort findet sich unter SOCKETs oder WINSOCK n haufen APIs, die zur herstellung von Verbingungen dienen!
Der vorteil daran ist, das Ihr die Tabelle direkt beschreibt, und die daten hinterlegt!
Bei gelegenheit, werde ich mal n kleinen auszug aud dem OCX bereitstellen, in dem das genau beschrieben ist! ... habe nur momentan leider nicht viel zeit!
Trotzdem hoffe ich, das dir das helfen wird!
Viel Erfolg noch!
Greez
Martin