Difference between revisions of "TWSocket.LineMode"

From Overbyte
Jump to navigation Jump to search
Line 13: Line 13:
 
If the client always sends data lines which end on CR/LF and the server shall display the lines individually in a memo, the server would set LineMode to true so that he always receives whole lines without needing to look for the end of a line himself.
 
If the client always sends data lines which end on CR/LF and the server shall display the lines individually in a memo, the server would set LineMode to true so that he always receives whole lines without needing to look for the end of a line himself.
  
 +
<syntaxhighlight lang="delphi">
 
   Socket.LineLimit:=100;            // prevent denial of service or buffer  
 
   Socket.LineLimit:=100;            // prevent denial of service or buffer  
 
                                     // overflows
 
                                     // overflows
Line 19: Line 20:
 
                                     // combination
 
                                     // combination
 
   Socket.LineMode:=true;
 
   Socket.LineMode:=true;
 +
</syntaxhighlight>
  
 
In [[TWSocket.OnDataAvailable|OnDataAvailable]] ReceiveStr is used to fetch the available data packet by packet.
 
In [[TWSocket.OnDataAvailable|OnDataAvailable]] ReceiveStr is used to fetch the available data packet by packet.

Revision as of 20:34, 1 July 2010

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 which end on CR/LF and the server shall display the lines individually in a memo, the server would set LineMode to true so that he always receives whole lines without needing to look for the end of a line himself.

<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