Klein0r
Erfahrenes Mitglied
Hallo zusammen - ich schreibe gerade eine kleine Netzwerkanwendung die mir Winamp fernsteuert - also mache ich mit folgenden Mitteln einen Dialog:
Server:
Auf der anderen Seite (dem Client) mache ich:
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:
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
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