na gut, du scheinst ahnung zu haben, dann stell ich gleich mal weitere fragen...es betrifft die kommunikation über den socket.
mein source code am server sieht so aus:
Public Class Form1
Dim sck_Server_TcpListener As TcpListener
Dim sck_ServerTcpClient As TcpClient
Dim sck_Server_NWS As NetworkStream
Dim bytes() As Byte
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
sck_Server_TcpListener = New TcpListener(System.Net.IPAddress.Parse(0), _
44000)
sck_Server_TcpListener.Start()
sck_Server_TcpListener.BeginAcceptTcpClient(AddressOf OnConnect, New _
Object)
End Sub
Private Sub OnConnect(ByVal data As System.IAsyncResult)
Log("connected")
sck_ServerTcpClient = sck_Server_TcpListener.EndAcceptTcpClient(data)
sck_Server_NWS = sck_ServerTcpClient.GetStream()
sck_Server_TcpListener.BeginAcceptTcpClient(AddressOf OnConnect, New _
Object)
ReDim bytes(sck_ServerTcpClient.ReceiveBufferSize)
sck_Server_NWS.BeginRead(bytes, 0, CInt( _
sck_ServerTcpClient.ReceiveBufferSize), AddressOf OnDataArrival, New _
Object)
End Sub
Private Sub OnDataArrival(ByVal data As System.IAsyncResult)
Dim clientdata As String = System.Text.Encoding.ASCII.GetString(bytes)
Log(clientdata)
Try
sck_Server_NWS.BeginRead(bytes, 0, CInt( _
sck_ServerTcpClient.ReceiveBufferSize), AddressOf OnDataArrival, _
New Object)
Catch ex As Exception
Log("Connection lost: " & ex.ToString)
sck_ServerTcpClient.Close()
sck_Server_NWS.Close()
End Try
End Sub
Private Sub Log(ByVal Text As String)
If Me.ListView1.InvokeRequired Then
Me.Invoke(New TextCallback(AddressOf SetListViewAdding), New Object( _
) {Text})
End If
End Sub
Private Sub SetListViewAdding(ByVal text As String)
ListView1.Items.Add(text)
End Sub
End Class wenn ich mich von 2 clients connecte, dann steht auch jeweils 1 mal connected da. das heisst, er peilt schon, dass dort 2 connections sind, aber übertragen kann ich nur noch daten mit dem zweiten client. kann mir da jemand helfen ? |