Hallo Leute !
Ich habe unter http://www.codeproject.com/Articles/11422/Winsock-NET
Ein sogenannter Nachbau von Winsock
Funktioniert aber, wie ich die Winsock Component als Test Projekt eingebunden habe, ist ein Problem entstanden, so das es mich wieder mal nicht weiss was er von mir will.
Ich habe 2 Formulare
Form1 mit 2 Winsocks als Server
Form2 mit 1 Winsock als Client
Wie ich in Form1 auf listen geklickt habe, und unter Form2 auch Connect geklickt habe, hat Form1 die Verbindung Apzeptiert aber Winsock in Form2 Kommt ein fehler meldung, die Lautet "Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement Form2 erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde."
Könnt ihr mir bitte weiter helfen Danke
nun der Code:
Public Class Form1
Private Sub Winsock1_Connected(sender As Winsock_Control.Winsock) Handles _
Winsock1.Connected
Me.Text = "Connect"
End Sub
Private Sub Winsock1_ConnectionRequest(sender As Winsock_Control.Winsock, _
requestID As Net.Sockets.Socket) Handles Winsock1.ConnectionRequest
Winsock2.Accept(requestID)
End Sub
Private Sub cmdSend_Click(sender As Object, e As EventArgs) Handles _
cmdSend.Click
Winsock2.Send("Server")
End Sub
Private Sub Winsock2_DataArrival(sender As Winsock_Control.Winsock, _
BytesTotal As Integer) Handles Winsock2.DataArrival
Dim Buffer As String = ""
Winsock2.GetData(Buffer)
MsgBox(Buffer)
End Sub
Private Sub cmdListen_Click(sender As Object, e As EventArgs) Handles _
cmdListen.Click
Winsock1.Listen()
End Sub
Private Sub Winsock1_HandleError(sender As Winsock_Control.Winsock, _
Description As String, Method As String, myEx As String) Handles _
Winsock1.HandleError
MsgBox(Description, CType(16, MsgBoxStyle), "Winsock1")
End Sub
Private Sub Winsock2_HandleError(sender As Winsock_Control.Winsock, _
Description As String, Method As String, myEx As String) Handles _
Winsock2.HandleError
MsgBox(Description, CType(16, MsgBoxStyle), "Winsock2")
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Form2.Show()
End Sub
End Class
Public Class Form2
Private Sub Winsock3_Connected(sender As Winsock_Control.Winsock) Handles _
Winsock3.Connected
Me.Text = "Connect"
End Sub
Private Sub Winsock3_DataArrival(sender As Winsock_Control.Winsock, _
BytesTotal As Integer) Handles Winsock3.DataArrival
Dim Buffer As String = ""
Winsock3.GetData(Buffer)
MsgBox(Buffer)
End Sub
Private Sub cmdConnect1_Click(sender As Object, e As EventArgs) Handles _
cmdConnect1.Click
Winsock3.Connect()
End Sub
Private Sub cmdSend1_Click(sender As Object, e As EventArgs) Handles _
cmdSend1.Click
Winsock3.Send("Client")
End Sub
Private Sub Winsock3_HandleError(sender As Winsock_Control.Winsock, _
Description As String, Method As String, myEx As String) Handles _
Winsock3.HandleError
MsgBox(Description, CType(16, MsgBoxStyle), "Winsock3")
End Sub
End Class Teil2 Folgt |