GET (TCP/IP statement): Difference between revisions
Jump to navigation
Jump to search
Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link
(Created page with "'''GET''' reads unformatted (raw) data from an open TCP/IP connection opened with _OPENCLIENT, _OPENHOST or _OPENCONNECTION. {{PageSyntax}} ''Syntax 1:'' : '''GET''' ''#handle'', , ''b$'' * Reads any available data into variable length string b$ (b$'s length is adjusted to the number of bytes read, so checking EOF is unnecessary) using the handle return value from _OPENCLIENT, _OPENHOST or _OPENCONNECTION. ''Syntax 2:'' : '''GET''' ''#handle''...") |
No edit summary |
||
Line 24: | Line 24: | ||
{{CodeStart}} | {{CodeStart}} | ||
{{Cl|PUT|PUT #}}c, , a$ ' sends data | {{Cl|PUT|PUT #}}c, , a$ ' sends data | ||
{{Cl|GET|GET #}}o, , b$ ' reads any available data into variable length string b$ | {{Cl|GET|GET #}}o, , b$ ' reads any available data into variable length string b$ | ||
{{Cl|GET|GET #}}o, , x% ' if 2 bytes are available, they are read into x% | {{Cl|GET|GET #}}o, , x% ' if 2 bytes are available, they are read into x% | ||
{{CodeEnd}} | {{CodeEnd}} | ||
''Explanation:'' | ''Explanation:'' | ||
* Data could be a string, variable array, user defined [[TYPE]], etc. | * Data could be a string, variable array, user defined [[TYPE]], etc. | ||
* b$'s length is adjusted to the number of bytes read. Checking [[EOF]](o) is unnecessary. | * b$'s length is adjusted to the number of bytes read. Checking [[EOF]](o) is unnecessary. | ||
* If 2 bytes are not available for the x% integer then nothing is read and [[EOF]](o) will return -1 | * If 2 bytes are not available for the x% integer then nothing is read and [[EOF]](o) will return -1 | ||
Revision as of 01:43, 23 January 2023
GET reads unformatted (raw) data from an open TCP/IP connection opened with _OPENCLIENT, _OPENHOST or _OPENCONNECTION.
Syntax
Syntax 1:
- GET #handle, , b$
- Reads any available data into variable length string b$ (b$'s length is adjusted to the number of bytes read, so checking EOF is unnecessary) using the handle return value from _OPENCLIENT, _OPENHOST or _OPENCONNECTION.
Syntax 2:
- GET #handle, ,x%
- Reads an integer. If 2 bytes are available, they are read into x%, if not then nothing is read and EOF(handle) will return -1 (and x%'s value will be undefined) using the handle return value from _OPENCLIENT, _OPENHOST or _OPENCONNECTION.
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:
PUT #c, , a$ ' sends data GET #o, , b$ ' reads any available data into variable length string b$ GET #o, , x% ' if 2 bytes are available, they are read into x% |
Explanation:
- Data could be a string, variable array, user defined TYPE, etc.
- b$'s length is adjusted to the number of bytes read. Checking EOF(o) is unnecessary.
- If 2 bytes are not available for the x% integer then nothing is read and EOF(o) will return -1
More examples
- See the examples in _OPENCLIENT or Email Demo.
See also
- PUT (TCP/IP statement)
- _OPENCLIENT, _OPENHOST
- _OPENCONNECTION, GET #
- cURL (HTTP and FTP file transfer)