GET (TCP/IP statement)
Jump to navigation
Jump to search
GET reads unformatted (raw) data from an open TCP/IP connection opened with _OPENCLIENT, _OPENHOST or _OPENCONNECTION.
Syntax
- Syntax 1 (using variable strings)
- GET #handle&, , dat$
- Using the handle& return value from _OPENCLIENT, _OPENHOST or _OPENCONNECTION, the function reads any available data into variable length string dat$, the string length is adjusted to the number of bytes read, so checking EOF is unnecessary.
- Syntax 2 (using fixed length variables/strings)
- GET #handle&, , dat%
- Using the handle& return value from _OPENCLIENT, _OPENHOST or _OPENCONNECTION, the function reads an INTEGER (in the shown syntax, due to the use of an integer (%) variable). If 2 bytes for the integer are available, they are read into dat%, if not then nothing is read and EOF handle& will return -1 (dat% its value will be undefined in the latter case).
Communicating using unformatted/raw streamed data
- Benefit: Communicate with any TCP/IP compatible protocol (eg. FTP, HTTP, web-pages, etc).
- Disadvantage: Streamed data has no 'message length', as such just the program deals with a continuous number of bytes in a row. Some messages get fragmented and parts of messages can (and often do) arrive at different times, due to the very nature of the TCP/IP protocol.
- The position parameter (between the commas) is not used in TCP/IP connections.
- The programmer must cater for these situations manually.
Examples
- Example
- Reading data of various lengths
GET #handle&, , dat$ 'always reads any available data into variable length string GET #handle&, , dat% 'if 2 bytes (INTEGER) are available, they are read, else nothing is read GET #handle&, , dat& 'if 4 bytes (LONG) are available, they are read, else nothing is read GET #handle&, , dat&& 'if 8 bytes (_INTEGER64) are available, they are read, else nothing is read |
More examples
See also
- PUT (TCP/IP statement)
- _OPENCLIENT, _OPENHOST
- _OPENCONNECTION, GET #
- cURL (HTTP and FTP file transfer)