Zum Inhalt springen

phpdev

Mitglieder
  • Gesamte Inhalte

    3
  • Benutzer seit

  • Letzter Besuch

  1. Hallo, 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: 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: ' 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 ... Bitte um Hilfe :floet:
  2. Vielen Dank für deine Antwort. Ich fange gerade erst an mich ernsthaft mit Threads auseinander zu setzen und stoße hier und da auf Probleme. Werde das dann mal mit Delegate probieren
  3. Hallo, also ich erstelle in meiner Applikation ein Thread und starte diesen. Die Aufgabe des Threads ist es darauf zu warten das ein Client kontakt über TCP/IP aufnimmt. Hierzu verwende ich : Dim tcpClient As TcpClient = tcpListener.AcceptTcpClient() Dim networkStream As NetworkStream = tcpClient.GetStream() Sendet der Client Daten so sollen diese ausgewertet werden und es sollen daraufhin bestimme daten zurückgesendet werden. Daten direkt in der Funktion des Threads zuversenden ist mit networkStream.Write(sendBytes, 0, sendBytes.Length) dann auch kein Problem. Problematisch wirds aber wenn ich im Thread eine andere Funktion aufrufen möchte die das senden für micht übernimmt. Damit ich auch in dem anderen Modul in dem sich die Senden() Funktion befindet auf die Variable networkStream zugreifen kann, habe ich diese im Modul der Funktion die im Thread läuft als public und vom Typ Object deklariert. Führe ich das ganze aus bekomme ich die Fehlermeldung: Die Objektvariable oder die With-Blockvariable wurde nicht festgelegt - Mit Verweis auf die networkStream Zeile. Diese Fehlermeldung sagt mir aber leider nicht sehr viel. Wäre nett wenn mir jemand bei dem kleinen Problem helfen würde. Gruss

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...