Quote:
Originally Posted by »FlutterShy™
1.) i know
2.) Meinst du das der user keinen x beliebig langen text senden kann weil die url nicht zu lang sein darf ?
3.)Mach ich wenn ich nochmal lusst habe
4.) Es kommt immer alles an von google hatte noch nie einen fehler und hab das bis jetzt immer so bei TCP gemacht. Wie soll ich die auf vollständigkeit prüfen ? (TCP wartet doch immer bis alles gesendet/empfangen wurde oder nicht? )
Hab meine posts übrigens geöscht da in denen nichts sinnvolles mehr stand da der code sich zu oft ändert. möchte den thread ja auch nicht zuspammen.
|
TCP ist ein protokoll...
du legst einen socket an. über diesen kannst du anfragen senden, und bereits erhaltene bytes abrufen.
wichtig ist hierbei das das ganze nach dem stack-prinziep funktioniert.
dh abgerufene bytes, werden vom stack gepopt und sind entsprechend weg.
die anzahl der abzurufenden bytes kannst du bei tcprecv festlegen.
wichtig ist hierbei das es unerheblich ist, wieviele bytes der stack bereits beinhaltet. die anfrage löscht in jedem fall den aktuellen inhalt des stacks und gibt ihn aus...
beispiel:
der server schickt dir folgenden text:
Code:
abcdefghijklmnopqrstuvwxyz
angenommen deine leitung kann pro ms 1 zeichen übertragen.
fragst du jetzt nach einer ms den stack mit tcprecv ab, so sieht das ergebnis so aus:
der stack wird dann zurückgesetzt
fragst du 3ms später den stack erneut ab, so sieht das ergebnis so aus:
der stack wird wieder geleert und so weiter.
deshalb ist es wichtig das man sich einen buffer, in form einer variable anlegt, welcher solange neuen kontent speichert, bis das ergebnis komplett ist.
html hat die eigenschaft, das am ende eines jeden paketes \r\n\r\n (2x @CRLF) steht. somit kannst du prüfen ob das ergebnis komplett ist.
googles antwort beinhaltet vor den 2 absätzen noch eine 0, sodass das ende noch eindeutiger ist.
Edit:
genau genommen handelt es sich hier also nicht um einen stack, sondern ein queue system. abgearbeitet wird schließlich nach den FIFO system.