Nabend,
ich habe ein kleines aber lästiges Problem und da ich mich erst seit kurzem mit Netzwerkprogrammierung beschäftige, komme ich deswegen derzeit auch nicht weiter.
Und zwar versende ich einen String mithilfe der System.Net.Sockets.TcpClient() an einen Server der das ganze mithilfe der TcpListener Klasse entgegen nimmt.
Der Code sieht wie folgt aus:
Client:
Server:
Das Problem ist jetzt das ein String vom Client laut sendstring.Length() z.b 60 Zeichen besitzt, auf dem Server hat die Variable clientdata in der jetzt dieser String genau so groß sein sollte aber eine Länge von 8193.
Bin ziemlich ratlos :wacko:
Bitte um Hilfe
ich habe ein kleines aber lästiges Problem und da ich mich erst seit kurzem mit Netzwerkprogrammierung beschäftige, komme ich deswegen derzeit auch nicht weiter.
Und zwar versende ich einen String mithilfe der System.Net.Sockets.TcpClient() an einen Server der das ganze mithilfe der TcpListener Klasse entgegen nimmt.
Der Code sieht wie folgt aus:
Client:
VB.NET-Quellcode
- Dim tcpClient As New System.Net.Sockets.TcpClient()
- tcpClient.Connect(server, 8000)
- Dim networkStream As NetworkStream = tcpClient.GetStream()
- ' Sende Logindaten
- Dim password_md5 = MD5StringZuHash(password)
- Dim sendstring As String = "createaccount;" & username & ";" & password_md5 & ";" & email
- ' DEBUG
- MsgBox(sendstring.Length())
- Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(sendstring)
- networkStream.Write(sendBytes, 0, sendBytes.Length)
Server:
VB.NET-Quellcode
- ' Listener initialiseren
- Const portNumber As Integer = 8000
- Dim tcpListener As New TcpListener(portNumber)
- ' Listener starten
- tcpListener.Start()
- Dim tcpClient As TcpClient = tcpListener.AcceptTcpClient()
- If tcpClient.Connected = True Then
- Dim networkStream As NetworkStream = tcpClient.GetStream()
- Do Until tcpClient.Connected = False
- ' Buffer für empfangende Daten
- Dim bytes(tcpClient.ReceiveBufferSize) As Byte
- Dim clientdata As String
- ' Variablen für verarbeitete Client-Daten
- Dim clientdata_arr() As String
- Dim clientdata_header As String
- Dim responseString As String
- ' Daten aus Byte Array lesen
- networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
- clientdata = Encoding.ASCII.GetString(bytes)
- ....
- ....
- ....
Das Problem ist jetzt das ein String vom Client laut sendstring.Length() z.b 60 Zeichen besitzt, auf dem Server hat die Variable clientdata in der jetzt dieser String genau so groß sein sollte aber eine Länge von 8193.
Bin ziemlich ratlos :wacko:
Bitte um Hilfe
