AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi ServerSocket text oder textdatei senden
Thema durchsuchen
Ansicht
Themen-Optionen

ServerSocket text oder textdatei senden

Ein Thema von EvilKnivel · begonnen am 8. Apr 2015 · letzter Beitrag vom 8. Apr 2015
Antwort Antwort
EvilKnivel

Registriert seit: 3. Mär 2011
2 Beiträge
 
#1

ServerSocket text oder textdatei senden

  Alt 8. Apr 2015, 11:33
Hallo liebe Community
Ich weis es ist ein altes Thema, aber ich habe seit längerem ein Programm was ausschließlich mit
Serversockets und Clientsocket kommuniziert.
Zum wechseln der Komponente ist es leider schon zu spät, das wäre ein Riesiger aufwand.
Ich habe bei manchen abfragen das Problem das ich weil Serversocket nur 4096 byte sendet ich durch loops immer wieder nur Bruchteile zu schicke..
ich wollte das gerne optimieren.

anfangs und normale texte schicke ich mit Socket.SendText
und nun habe ich Socket.SendStream mal probiert, aber es verschickt oder empfängt trotzdem nur ein Bruchteil von dem was er sollte.

gibt es eine Möglichkeit das ich ohne immer nur Bruchteile zu senden alles mit einmal auf meinem Client empfangen kann?

besten dank im voraus!
mfg EvilKnievel
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: ServerSocket text oder textdatei senden

  Alt 8. Apr 2015, 11:37
Es wird mMn immer so sein, das Bruchstückweise gesendet wird. Du musst das halt irgendwie Buffern bis alles da ist.
Ralph
  Mit Zitat antworten Zitat
EvilKnivel

Registriert seit: 3. Mär 2011
2 Beiträge
 
#3

AW: ServerSocket text oder textdatei senden

  Alt 8. Apr 2015, 12:45
gibts da nix anderes?
  Mit Zitat antworten Zitat
Benutzerbild von Net7
Net7

Registriert seit: 22. Jun 2004
Ort: Lauenburg
161 Beiträge
 
Delphi 7 Professional
 
#4

AW: ServerSocket text oder textdatei senden

  Alt 8. Apr 2015, 14:12
Nicht wirklich. Das Protokoll must du schon selber schreiben, damit deine Daten wieder korrekt zusammengesetzt werden.
Marko
So`ne Atombombe kann einem den ganzen Tag verderben!
Eine eigene DLL in C++ geschrieben wird meist ein Sklave für mein Delphi/Pascal.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.053 Beiträge
 
Delphi 12 Athens
 
#5

AW: ServerSocket text oder textdatei senden

  Alt 8. Apr 2015, 14:34
Nicht wirklich. Das Protokoll must du schon selber schreiben, damit deine Daten wieder korrekt zusammengesetzt werden.
Jupp, entwerder selber machen, oder man nimmt sich eine bestehende "Zwischenschich".

Socket und Co. kümmert sich nur um die Datenübertragung von einem "Stream", aber was da drin ist, ist den Sockets sowas von egal. (die haben sich auch garnicht darum zu kümmen)
Dafür gibt es dann die nächsten Level in der Übertragungshirachie, welche sich um die Datenverwaltung kümmen.

HTTP, FTP, POP3, DataSnap, REST, SOAP usw. sind auch nur "Socket"-Verbindungen, mit einem entsprechenden Protokoll drumrum.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#6

AW: ServerSocket text oder textdatei senden

  Alt 8. Apr 2015, 15:10
Zitat von EvilKnivel:
Zum wechseln der Komponente ist es leider schon zu spät, das wäre ein Riesiger aufwand.
gibts da nix anderes?
Wechseln oder nicht wechseln, beides gleichzeitig geht nicht

TClientSocket arbeitet nach dem "Schau, ich hab da wieder ein paar Bytes bekommen..." - Prinzip.
Im Unterschied dazu liefern Indy und Synapse die Daten in Portionen, deren Größe oder Endemarkierung man selber vorgibt.
Das heisst, die Bröckchen die über den Socket angeliefert werden, werden in einem Puffer im Indy IOHandler gepuffert und erst dann an deinen Code übergeben, wenn sie vollständig empfangen wurden. Kommen keine daten, wird gewartet bis zum Timeout.

Je nachdem wie stark der Code die TClientSocket Komponente mit dem speziellen Daten-Protokoll verflochten hat, kann das Austauschen gegen Indy (TIdTCPClient) natürlich schon etwas aufwendiger werden.
Michael Justin
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz