langsame kommunikation tcplistener

Klein0r

Erfahrenes Mitglied
Hallo zusammen - ich schreibe gerade eine kleine Netzwerkanwendung die mir Winamp fernsteuert - also mache ich mit folgenden Mitteln einen Dialog:

Server:

Code:
    Dim Sstream As NetworkStream
    Dim Sw As BinaryWriter
    Dim Sr As BinaryReader

    Dim Slistener As TcpListener = New TcpListener(IPAddress.Parse(myIpAdress), Me.port)

    Slistener.Start()

    Dim client As TcpClient = Slistener.AcceptTcpClient()

    Sstream = client.GetStream()

    ' Einen BinaryWriter erstellen, um in den Stream zu schreiben.
    Sw = New BinaryWriter(Sstream)

     ' Einen BinaryReader erstellen, um aus dem Stream zu lesen.
    Sr = New BinaryReader(Sstream)

    If Sr.ReadString() = WinampRemote.ClientMessages.RequestConnect Then

....

Auf der anderen Seite (dem Client) mache ich:

Code:
    Private client As TcpClient
    Private stream As NetworkStream
    Private w As BinaryWriter
    Private r As BinaryReader


        client = New TcpClient()

            client.Connect(IPAddress.Parse(IP), port)
            stream = client.GetStream()

            w = New BinaryWriter(stream)

            r = New BinaryReader(stream)

            w.Write(WinampRemote.ClientMessages.RequestConnect)

usw.

Das ganze ist allerdings soooo todeslangsam... Ich weiß echt nich woran das liegt! Ich teste natürlich erst lokal und dann über meinen anderen Rechner. Das Problem ist, dass man echt zugucken kann wie die Befehle nacheinander abgearbeitet werden auf der Serverseite... Was mache ich falsch? Immerhin sind das doch immer nur ein paar Byte zu übertragen und keine Massen von Daten!

Damit beide die selbe "Sprache" sprechen und verstehen habe ich mir
einige Kostanten geschrieben:

Code:
Namespace WinampRemote

    Public Class ServerMessages
        Public Const ConnectionConfirm As String = "Confirmed"
        Public Const ConnectionCancel As String = "Cancel"

        Public Const CommandConfirm As String = "CConfirm"
        Public Const CommandReject As String = "CReject"

        Public Const ReadyToSendList As String = "StartOfPlayList"
        Public Const EndOfPlaylist As String = "EndOfPlayList"

        Public Const ReadyToGetCommand As String = "ReadyToRecieve"

        Public Const Disconnect As String = "Bye"
    End Class

    Public Class ClientMessages
        Public Const RequestConnect As String = "Hello"
        Public Const Disconnect As String = "Bye"

        Public Const SendMePlayList As String = "SendPlayList"

        Public Const WantToSendCommand As String = "NewWinampCommand"
        Public Const WantToSendCommandParameter As String = "NewWinampParameterCommand"

        Public Const SendTitelLine As String = "WantToHaveTitel"

    End Class

End Namespace

Vllt hilft das weiter - WARUM ist also das ganze sehr sehr langsam? Ich arbeite halt in einem Dialog wie man sieht...

Oder liegts an irgendwelchen Datentypen oder falsch genutzten Funktionen? Hoffe es kann mir wer so schnell wie möglich eine Antwort geben!

Es funktioniert alles - nur sehr langsam übers Netz. Das ganze ist zwar WLAN - aber ich kann von beiden Rechnern mit voller DSL6000-Geschwindigkeit ausm Internet laden - also das Netz bremst sicherlicht - aber eigentlich sollte es die von mir geforderten Datenmengen doch locker bewältigen, oder?

lg
 
Da bis jetzt keiner ne Antwort auf meine Frage hatte stelle ich die nochmal anders:

Welche Möglichkeiten gibt es für die einfache Datenübertragung zwischen 2 PCs über das Netzwerk die auch relativ schnell ist bei vielen kleinen Einzelnen Datenübertragungen?

Also alternativen zum TcpListener / TcpClient.

lg
 

Neue Beiträge

Zurück