1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-01 15:00:38 +00:00
QB64-PE/internal/help/GET_(TCP%2FIP_statement).txt

52 lines
2.1 KiB
Plaintext
Raw Normal View History

2017-10-10 14:55:21 +00:00
'''GET''' reads unformatted (raw) data from an open TCP/IP connection opened with [[_OPENCLIENT]], [[_OPENHOST]] or [[_OPENCONNECTION]].
{{PageSyntax}}
2017-10-10 14:55:21 +00:00
''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]].
2017-10-10 14:55:21 +00:00
''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]].
2017-10-10 14:55:21 +00:00
==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.
2017-10-10 14:55:21 +00:00
{{PageExamples}}
''Example:''
{{CodeStart}}
2017-10-10 14:55:21 +00:00
{{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, , x% ' if 2 bytes are available, they are read into x%
{{CodeEnd}}
''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
2017-10-10 14:55:21 +00:00
===More examples===
* ''See the examples in [[_OPENCLIENT]] or [[Email Demo]].''
2017-10-10 14:55:21 +00:00
{{PageSeeAlso}}
2021-01-04 18:45:32 +00:00
* [[PUT (TCP/IP statement)]]
* [[_OPENCLIENT]], [[_OPENHOST]]
* [[_OPENCONNECTION]], [[GET|GET #]]
2021-01-04 18:45:32 +00:00
* [https://curl.haxx.se/ cURL] (HTTP and FTP file transfer)
2019-04-15 01:15:33 +00:00
{{PageNavigation}}
<