Winsock Protocol

boozer

Grünschnabel
hi

hab ne frage und zwar hab ich winsock Verbindung aufgebaut.
Auf Form1 ist das Winsock eingebaut
ich möchte jetzt aber von Form2 auch was senden....

so hab ichs probiert:

Form1.winsock.SendData ........

aber irgendwie hat das nicht geklappt

kann mir einer helfen?

Danke schon im voraus
 
Die Fehlermeldung kommt :


Laufzeitfehler 40006 :
Falsches Protokoll oder Verbindungszustand für die angeforderte Transaktion oder Anwendung
 
Diese Fehlermeldung heißt lediglich, dass dein Winsock nicht zum Senden von Daten bereit ist, hat aber nichts mit dem Zugreifen von einem anderen Formular aus zu tun.
 
aber komisch is halt dass ich von der form1 befehle senden kann....
also müsste ja was an der form2 nicht stimmen

aber trotzdem danke für die antworten
 
hi

Du hast wahrscheinlich das Sock von Form1 per Sock.Connect() oder über Sock.Accept() verbunden, das Sock von Form 2 jedoch nicht. Es ist also nötig, auch dieses an einen remote host/port zu binden (->sock.connect(host,port) ).
Ich bin mir nicht sicher, aber ich glaube, dass es nicht möglich ist, 2 Socks an einen Port zu binden. Es ist somit wahrscheinlich nicht möglich, die Socks beider Forms an den selben remote host/port zu binden. Ich würde, wenn dies möglich ist, entweder auf dem remote pc ebenfalls 2 Socks erstellen, die eine Connection aufbauen können, oder die gesamten Daten über nur ein Sock fliessen lassen.

mfg
Mafu
 
Er hat nur auf Form1 ein Socket.

Du kannst es prüfen, indem Du eine Public bolSockConnected As Boolean anlegst.

Bei Winsock_Connect() oder Winsock_Accept() setzt Du die Variabel auf True, wenn der Server nicht mehr connected ist, setzt Du die Variable auf False.

Jeder Programmcode, der Daten senden oder empfangen will prüft erst die Variable, ist sie auf False bricht er den Code ab.

Fertig.

2 Sockets an einen Port

Das ist definitiv nicht möglich, da hast Du Recht.
 
@ Filone

was bringt mir des dann?

dann weiss ich halt ob eine Verbindung besteht oder nicht ? oder lieg ich da falsch?
..... aber ein Lösung ist das ja für mein Problem nicht.
 
wie gesagt:
schau, ob du das 2te sock auch wirklich connected hast! ohne verbindung kann nichts gesendet werden.

die variable von filone kannst du auch einfach durch ein....

if from1.sock1.state = sckConnected then
' senden
else
stop ' nicht verbunden!
end if

.... ersetzen

mfg
Mafu
 
Zurück