ServerSocket (Socket function): Difference between revisions
m (1 revision) |
m (→Syntax terms) |
||
Line 21: | Line 21: | ||
<td>A declared socket object or a reference to a <var>Socket</var> object. | <td>A declared socket object or a reference to a <var>Socket</var> object. | ||
</td></tr> | </td></tr> | ||
<tr><th>%(Socket)</th> | <tr><th><var>%(Socket)</var></th> | ||
<td>The class name in parentheses denotes a shared method. Specifying <code>%(Socket):</code> is not the only way to invoke the method (see [[??]] refid=themeth.). | <td>The class name in parentheses denotes a shared method. Specifying <code>%(Socket):</code> is not the only way to invoke the method (see [[??]] refid=themeth.). | ||
Revision as of 22:40, 8 November 2011
<section begin=dpl_desc/><section end=dpl_desc/>
ServerSocket is a member of the Socket class.
This shared method obtains a reference to a Socket object for the server socket (socket number 1 in the $Sock_xxx API, as described in "Client versus Server Socket programming". It returns a reference to a Socket object instance, which can then be used with instance method calls to access the server socket. ServerSocket has no equivalent $function.
ServerSocket syntax
%so = %(Socket):ServerSocket
Syntax terms
%so | A declared socket object or a reference to a Socket object. |
---|---|
%(Socket) | The class name in parentheses denotes a shared method. Specifying %(Socket): is not the only way to invoke the method (see ?? refid=themeth.).
|
Usage notes
- After ServerSocket returns, the socket is no longer accessible by its socket number (1). To access the socket by its number again, use GetSocketNumber.
- ServerSocket can be used to obtain a Socket object reference for a socket already created by $Sock_Conn, or it can operate in an entirely object-oriented application.
Example
In the following code fragment, a server socket receives data and replies to its client.
Begin %r Float %sepx Float %data is String len 255 %servsock is Object Socket %servsock = %(Socket):ServerSocket %r = %servsock:Set('PRSTOK', 'AMBIG|0D0A|0D|0A|07') %r = %servsock:Set('LINEND', '07') %r = %servsock:ReceiveAndParse(%data) If %r le 0 Then ... If %data eq 'Hello' Then ... %r = %servsock:SendWithLineEnd('OK') ...