Vielleicht kennen Sie das ja: Sie haben eine Client / Server Anwendung geschrieben, doch wenn der Server zwei voneinander getrennte Pakete verschickt, kommen diese auf der Clientseite wie ein Paket an (umgekeht natürlich genauso). Warum das so ist - keine Ahnung. Hierbei handelt es sich aber nicht nur um ein Windowsproblem. Dieses Problem tritt auch in anderen Betriebssystemen auf. Wenn man nun vor jedes Paket die Länge setzt und dann die zusammengefügten Pakete wieder trennt, kann die ganze Kommunikation so behandelt werden, wie Sie sich das ganze mühselig ausgedacht haben. Dies gilt übrigens als Standard unter Unix-basierenden Betriebssystemen. Wenn "die" das können, dann können wir das ganze erst recht Folgenden Code auf Client- und Serverseite verwenden und es funktioniert. Die Verarbeitung erfolgt dann in der Sub Verarbeite, das Versenden wird mit der Function WskSend realisiert. Private Function WskSend(sData As String) As Boolean ' Daten an die Gegenstelle versenden ' Max. Länge überschritten ? If Len(sData) > 9999 Then ' Max. Länge überschritten! ' String kann nicht versandt werden WskSend = False Exit Function End If ' Vor jeden zu versendenden String die Länge setzen Winsock1.SendData Format$(Len(sData), "0000") & sData WskSend = True End Function Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) ' Daten empfangen Dim sData As String Dim iLen As Integer ' String abholen Winsock1.GetData sData, vbString Do While Len(sData) > 0 ' Die ersten 4 Stellen sind als Länge definiert ' (sollte ausreichen) iLen = Val(Left(sData, 4)) ' String raustrennen und verarbeiten Verarbeite Mid(sData, 4, iLen) ' Verarbeiteten String entfernen sData = Trim(Right(sData & " ", Len(sData) - iLen + 4)) Loop End Sub Private Sub Verarbeite(sData As String) ' ... hier wird der String programmspezifisch ' weiterverarbeitet End Sub Dieser Tipp wurde bereits 19.486 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
Neu! sevDTA 3.0 Pro SEPA mit Kontonummernprüfung Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |