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.483 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. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. 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 sevWizard für VB5/6 Professionelle Assistenten im Handumdrehen Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) |
||||||||||||||||
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. |