GET (TCP/IP statement) - QB64 Wiki

GET (TCP/IP statement)

From QB64 Wiki

Revision as of 16:50, 15 October 2011 by Clippy (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)
Jump to: navigation, search

GET (in regard to TCP/IP) reads unformatted(raw) data from an open connection, opened with _OPENCLIENT, _OPENHOST or _OPENCONNECTION QB64 functions.


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 completely unnecessary) using the handle return value from the function used.


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 the function used.


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 a continuous bunch of bytes all in a row. Some messages get fragmented and parts of messages can (and often do) arrive at different times.
  • The position parameter(between the commas) is not used in TCP/IP statements.
Your program MUST cater for these situations manually.


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


See the examples in _OPENCLIENT or Email Demo.


See also:



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