GET (TCP/IP statement)

From QB64 Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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 also



Navigation:
Keyword Reference - Alphabetical
Keyword Reference - By usage
Main WIKI Page