PUT (TCP/IP statement): Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
(Created page with "The '''PUT #''' TCP/IP statement sends unformatted(raw) data to an open connection using a user's handle. {{PageSyntax}} :: '''PUT ''#handle'', , ''data'' ''' {{Parameters}} * The ''handle'' value is returned by the _OPENCLIENT, _OPENHOST or _OPENCONNECTION '''QB64''' functions. * The ''data'' can be any variable type value. Literal values are not allowed. <center>'''Communicating using unformatted/raw streamed data:'''</center> * Benefit: Communicate...")
 
No edit summary
Line 13: Line 13:
<center>'''Communicating using unformatted/raw streamed data:'''</center>
<center>'''Communicating using unformatted/raw streamed data:'''</center>
* Benefit: Communicate with any TCP/IP compatible protocol (eg. FTP, HTTP, web-pages, etc)
* 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.  
* 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 as all data is streamed consecutively.
* The position parameter (between the commas) is not used in TCP/IP statements as all data is streamed consecutively.
<center>'''Your program MUST cater for these situations manually.'''</center>
<center>'''Your program MUST cater for these situations manually.'''</center>
Line 20: Line 20:


  {{Cb|PUT (TCP/IP statement)|PUT #}}client, , a$ 'sends data (this could be a string, variable array, user defined type, etc)
  {{Cb|PUT (TCP/IP statement)|PUT #}}client, , a$ 'sends data (this could be a string, variable array, user defined type, etc)
  {{Cb|GET (TCP/IP statement)|GET #}}openconn, , b$ 'reads any available data into variable length string b$  
  {{Cb|GET (TCP/IP statement)|GET #}}openconn, , b$ 'reads any available data into variable length string b$
  {{Cb|GET (TCP/IP statement)|GET #}}openconn, , x% 'reads 2 bytes of data as an integer value.
  {{Cb|GET (TCP/IP statement)|GET #}}openconn, , x% 'reads 2 bytes of data as an integer value.
{{WhiteEnd}}
{{WhiteEnd}}
Line 31: Line 31:




''See also:''  
''See also:''
* [[GET (TCP/IP statement)]], [[PUT|PUT #]]
* [[GET (TCP/IP statement)]], [[PUT|PUT #]]
* [[_OPENCLIENT]], [[_OPENHOST]], [[_OPENCONNECTION]]  
* [[_OPENCLIENT]], [[_OPENHOST]], [[_OPENCONNECTION]]




{{PageNavigation}}
{{PageNavigation}}

Revision as of 02:24, 23 January 2023

The PUT # TCP/IP statement sends unformatted(raw) data to an open connection using a user's handle.


Syntax

PUT #handle, , data


Template:Parameters


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 as all data is streamed consecutively.
Your program MUST cater for these situations manually.

Template:WhiteStartExample: string variable b$'s length is adjusted to the number of bytes read.

PUT #client, , a$ 'sends data (this could be a string, variable array, user defined type, etc)
GET #openconn, , b$ 'reads any available data into variable length string b$
GET #openconn, , x% 'reads 2 bytes of data as an integer value.

Template:WhiteEnd

Explanation: Checking EOF(o) is unnecessary. If 2 bytes are available, they are read into x%, if not then nothing is read and EOF(o) will return -1



See the example in _OPENCLIENT


See also:



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link