GET (TCP/IP statement): Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
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}}



Revision as of 22:08, 18 June 2024

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:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link