Difference between revisions of "TWSocket.LineMode"

From Overbyte
Jump to navigation Jump to search
 
Line 11: Line 11:
 
== Example ==
 
== Example ==
  
If the client always sends data lines terminated with CR/LF and the server shall display the lines individually in a memo, the server would set LineMode to true so the caller always receives whole lines without needing to look for the end of a line.
+
If the client always sends data lines terminated with CR/LF and the server shall display the lines individually in a memo, the server would set LineMode to true so the caller always receives complete lines without needing to search for the end of line.
  
 
<syntaxhighlight lang="delphi">
 
<syntaxhighlight lang="delphi">

Latest revision as of 00:49, 10 March 2016

Main page -> ICS component reference -> TWSocket -> LineMode

Definition

property LineMode: boolean;

Description

If set to true, LineMode enables automatic splitting of received data into packets based on a user definable char sequence.

Example

If the client always sends data lines terminated with CR/LF and the server shall display the lines individually in a memo, the server would set LineMode to true so the caller always receives complete lines without needing to search for the end of line.

<syntaxhighlight lang="delphi">

 Socket.LineLimit:=100;             // prevent denial of service or buffer 
                                    // overflows
 Socket.LineEnd:=chr(10) + chr(13); // the sender has to terminate all 
                                    // messages sent with this character 
                                    // combination
 Socket.LineMode:=true;

</syntaxhighlight>

In OnDataAvailable ReceiveStr is used to fetch the available data packet by packet.

Best practices

Always set LineLimit to prevent buffer overflows.

How to