| |

Visual-Basic EinsteigerMultithreading Problem | |  | Autor: duckhunter | Datum: 12.05.06 08:24 |
| Hi Leute,
Hab schon wieder ein kleines Problem .
Ich will einen kleinen TCP Server machen. Das Problem ist nur, er gibt immer einen Fehler aus und ich weiß nicht warum. Ich hab das jetzt mit grafischer Oberfläche. Ich glaube (da ich ein Konsolenprogramm mit ähnlichen Code habe), wenn ich das mit Konsolenoberfläche machen würde, hätte ich kein Problem.
Folgender Fehler tritt auf: "Beim Vorgang zum Rückgängigmachen wurde ein Kontext gefunden, der sich vom Kontext des entsprechenden Set-Vorgangs unterschied. Möglicherweise war der Kontext für den Thread "Set" und wurde nicht zurückgesetzt (rückgängig gemacht)."
Private Shared Listen_Server As Socket
Private Shared Connection_Server As Socket
Private Shared receivebuffer(511) As Byte
Private Shared allDone As New ManualResetEvent(False)
Private Shared Sub StartServer()
If Form1.tb_localport.Text <> "" Then
'StatusBar1.Text = "Waiting For connection"
MsgBox("Waiting For connection")
Form1.bt_listen.Enabled = False
Form1.bt_disconnect.Enabled = True
Listen_Server = New Socket(AddressFamily.InterNetwork, _ _
SocketType.Stream, ProtocolType.Tcp)
Dim localEP As New IPEndPoint(IPAddress.Any, Val( _
Form1.tb_localport.Text))
Try
Listen_Server.Bind(localEP) 'IP-Adresse und Port binden
Catch ex As Exception
'statusbar1.Text = "ERROR On binding socket"
MsgBox("ERROR On binding socket")
End Try
Try
Listen_Server.Listen(100) 'Listen-Server starten
Catch ex As Exception
closeconnections()
'statusbar1.Text = "ERROR On Start Listening"
MsgBox("ERROR On Start Listening")
End Try
While True
allDone.Reset()
Listen_Server.BeginAccept(AddressOf callback_accept, Listen_Server)
allDone.WaitOne()
End While
End If
End Sub
Public Shared Sub callback_accept(ByVal ar As IAsyncResult)
'statusbar1.Text = "connected"
MsgBox("connected")
Form1.bt_senddata.Enabled = True
Application.DoEvents()
Try
Connection_Server = Listen_Server.EndAccept(ar)
Connection_Server.BeginReceive(receivebuffer, 0, 512, SocketFlags.None, _ _
New AsyncCallback(AddressOf callback_readdata), Connection_Server)
allDone.Set()
Catch ex As Exception
'statusbar1.Text = "no connection"
MsgBox("no connection")
End Try
End Sub Dieser Fehler tritt bei "allDone.WaitOne()" auf.
Der Fehler tritt auch auf, wenn ich "allDone.WaitOne()" und "allDone.Reset()" mit "DoEvents()" ersetze und "allDone.Set()" lösche.
Ich hab bei den obigen Code den Befehl "Shared" dabei. Aber auch ohne diesen geht das nicht
Keine Ahnung wo hier wieder der Fehler ist.
Danke für Eure Hilfe im Voraus.
mfg
duckhunter |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevOutBar 4.0 
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|