PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Netzprog funzt net


snobordo
11.04.2002, 17:50
Ich will ein Programm Programmieren, das in einem Computerraum auf Knopfdruck einzelne PCs blockiert. Aber dabei kommt immer diese Fehlermeldung:
Wrong protocol or connection state for the requested transaction or request

Woran liegt das? :mauer: Wenn ich ein Testprogramm mit einem Connect-Button, einem Blockier-Button und einem Deblockier-Button mach, dann funzt es. Aber was stimmt an diesem code nicht? Hier ist der code:


Dim AnzahlCr, AnzahlUr, Port, I, Datei As String, Block As
String, Deblock As String

Private Sub Form_Load()
Block = "Blockieren"
Deblock = "Deblockieren"
AnzahlCr = 15
AnzahlUr = 7
Port = 1034
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Verbindung.Close
End Sub

Private Sub mnuCr_Click(Index As Integer)
Dim Host As String
On Error GoTo Fehler
If Not mnuCr(Index).Tag = "0" Then
mnuCr(Index).Tag = ""
GoTo 1
End If
If mnuCr(Index).Checked = False Then
mnuCr(Index).Checked = True
Else
mnuCr(Index).Checked = False
End If
1
Host = "localhost"
If mnuCr(Index).Checked = False Then
Verbindung.Connect Host, Port
Verbindung.SendData Block
tmrSenden(0).Enabled = True
Else
Verbindung.Connect Host, Port
Verbindung.SendData Deblock
tmrSenden(1).Enabled = True
End If
Verbindung.Close
Exit Sub

Fehler:
mnuCr(Index).Checked = False
End Sub


USSEraser
19.04.2002, 09:18
Ich nehme mal an das der Fehler eher beim Host liegt. Der muss mämlich die Verbindung noch akzeptieren (Winsock_ConnectionRequest). :mauer:

Aber wenn du sowiso die Verwindung gleich wieder abbaust ist UDP besser geeignet als TCP. Da brauchst du keine Verbindung aufzubauen, sonder kannst einfach schicken.

P.S. Wenn du deine Programme einrückst lassen sie sich viel leichter lesen.

snobordo
19.04.2002, 14:26
Der fehler kann nicht am host liegen, da es mit einem testprogramm funzt. Ich kann irgendwie nicht mehrere Verbindungen in der gleichen prozedur auf- und abbauen. oder der host akzeptiert die verbindung erst, wenn der client die verbindung schonwieder geschlossen hat. kann es sein, dass das winsock-Steuerelement einfach zu langsam ist?

P.S. Ich hab den Code eingerückt, aber die einrückungen sind beim posten verschwunden :rolleyes:

cYrus
19.04.2002, 23:35
dein code ist recht merkwürdig.. wieso naust du eine verbindung auf um die dann zu trennen? :rolleyes: :rolleyes: ein einfacher connect und dann ein close (aber erst dann wenn du die verbindung wieder freigebn willst) würden da reichen.. du musst da ned ne ednlos-connect-schleife bauen..

btw: es gibt auch einen [ C O D E ] -TAG ;)

so long
cYrus

snobordo
20.04.2002, 14:03
ich hab den code nur verkürz hier reingestellt. der client verbindet sich bei jedem connecten mit einem anderen host. Daher muss ich die Verbindung mit pc1 aufbauen, befehl versenden, verbindung freigeben, verbindung mit pc2 aufbauen, befehl versenden...

Das es den [ C O D E ] - TAG gibt hab ich leider erst zu spät gemerkt :D

USSEraser
21.04.2002, 12:22
kann es sein, dass das winsock-Steuerelement einfach zu langsam ist?

Das kann gut sein.

Manchmal hat das Winsock Probleme mit dem schließen des Ports. Versuch doch mal den Port jedesmal zu wechseln.

cYrus
21.04.2002, 13:25
Original von snobordo
Das es den [ C O D E ] - TAG gibt hab ich leider erst zu spät gemerkt :D


es gibt auch ne EDIT-Funktion :P

snobordo
22.04.2002, 13:45
Sind jetzt endlich alle zufrieden mit meinem Code im Beitrag? Hat jemand vielleicht eine lösung für mein problem? Ich will die Verbindung nicht über udp laufen lassen, da UDP zu unsicher ist.