Neues Projekt, Art Server

Peter86

Erfahrenes Mitglied
Hallo Community,
ich will ein neues Projekt starten, für das ich im Idealfall einen Server und einen Clienten habe. Heißt ich starte auf Computer 1 den Server und Connecte mit Computer 2 über den Clienten auf den Server. Um informationen mit ihm Auszutauschen. Wie Fange ich da am besten an? Kennt ihr Beispiele, die am besten in vb.NET sind?
Würde mich über antworten freuen.

Vielen Dank
Peter86

EDIT:
Könnte dies dafür geeignet sein?
http://www.eggheadcafe.com/articles/20020323.asp
Ich möchte, z.B. im Server eine ComboBox und wenn die ComboBox auf False gestellt ist, bei dem Client in einer Textbox False steht. Ist das damit möglich?


So sieht mein Code zurzeit aus:

Client:
Code:
Imports System.Net.Sockets
Imports System.Text

Public Class Form1

    Private SimpleClient As New TcpClient
    Private Stream As NetworkStream

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        SimpleClient.Connect("127.0.0.1", 25)
        Stream = SimpleClient.GetStream

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(TextBox1.Text)
        Stream.Write(sendBytes, 0, sendBytes.Length)
    End Sub
End Class

Server:
Code:
Imports System.Net.Sockets
Imports System.Text

Public Class Form1

    Private SimpleServer As TcpListener
    Private Client As New TcpClient
    Private Stream As NetworkStream
    Dim bytes() As Byte


    Private Sub OnConnect(ByVal ar As System.IAsyncResult)
        Client = SimpleServer.EndAcceptTcpClient(ar)
        Stream = Client.GetStream

        ReDim bytes(Client.ReceiveBufferSize)
        Stream.BeginRead(bytes, 0, CInt(Client.ReceiveBufferSize), AddressOf onGetData, New Object)
    End Sub
    Private Sub onGetData(ByVal ar As System.IAsyncResult)

        Dim clientdata As String = Encoding.ASCII.GetString(bytes)
        Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(clientdata)
        Dim msg

        Dim send_msg As New pDel(AddressOf daten_erhalten)
        Try
            Stream.Write(sendBytes, 0, sendBytes.Length)


            Stream.BeginRead(bytes, 0, CInt(Client.ReceiveBufferSize), AddressOf onGetData, New Object)
            msg = clientdata

            Me.Invoke(send_msg, msg)
        Catch
            msg = "Client Disconnected"
            Me.Invoke(send_msg, msg)

        End Try
    End Sub
    Delegate Sub pDel(ByVal msg As String)
    Sub daten_erhalten(ByVal clientdata As String)

        If TextBox1.Text = String.Empty Then
            TextBox1.Text &= TimeOfDay & ":  " & clientdata
        Else
            TextBox1.Text &= vbNewLine & TimeOfDay & ":  " & clientdata
        End If
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        SimpleServer = New TcpListener(System.Net.IPAddress.Parse(0), 25)

        SimpleServer.Start()

        SimpleServer.BeginAcceptTcpClient(AddressOf OnConnect, New Object)

    End Sub
End Class
Probleme:
Der Server kann nur 4 Nachrichten erhalten, danach passiert nichts mehr.
Anscheinend ist er auch nicht Multiclient fähig.




Verbesserungs Vorschläge?
 
Zuletzt bearbeitet:
Zurück