Infrasctucture Io2 Function Reference
Io2
#include "io2.h"
The Io2 module allows the programmer to send and receive data vi TCP, UDP and Serial COM port.
The Io2 paradigm allows an open (io2Open) followed by a send or receive followed by a close.
| | |
|
int
|
io2Close( int handle )
|
Close all sockets and clean up.
Returns OK.
| | |
|
int
|
io2Init( int argc, char** argv )
|
Prepares Io2 for initialiazation.
Returns argc.
|
|
int
|
io2Open( int type, char* host, char* port, int maxDat )
|
Create control block, with input and output buffers, a base socket with "host" and "port" assigned.
The "maxDat" establishes send/recieve buffer size.
If "maxDat" is zero a default buffer sizeof 8192 is used.
The "type" sets the protocol and establishes connections automatically.
The Type codes are:
| |
|
| IO2TCPC | use TCP as a client (connect to remote host).
|
| IO2TCPS | use TCP as a server (bind address and wait for connection).
|
| IO2UDPC | use UDP as a client (establish bidirectional path to remote host).
|
| IO2UDPS | use UDP as a server (bind address and wait for in-bound packets).
|
| IO2SER | use SERIAL DEVICE.
|
| IO2CONS | user the process' console.
|
Returns a handle for use with all following operations on this session else negative of errno.
| | |
|
int
|
io2Rcv( int handle, char* rcvDat, char* match, int maxRx, int rFlg, int to )
|
Receive characters until either the character count reaches "maxRx" or the "match" pattern is found in the received data or the time out "to" (in milliseconds) expires.
In the UDP mode the "rFlg" allows multiple reads of a UDP pkt, as in reading the header (rFlg = TRUE) to get the overall len and then re-read the entire packet (rFlg = FALSE.
Returns byte count received or an error (negative of errno) or zero if timed out.
|
|
int
|
io2SetFlg( int handle, int flagBits )
|
Set the session flags per the supplied "flagBits" argument.
The flag bit defines are:
| |
|
IO2NONULL
|
Convert input nulls into spaces for Pix Firewall.
|
IO2BIN
|
If FALSE (assume ASCII data) put a null at end of recv'd data.
|
| | |
|
int
|
io2Snd( int handle, int to, int txLen, char* fmt, elipsis* ... )
|
If txLen is zero transmit the characters indicated by "fmt" expanded any following arguments.
If txLen is not zero it is assumed to be binary data and no expansion is attempted.
The process waits "to" milliseconds for the transmitt to complete and if the time expires returns a zero.
Returns byte count transmitted or an error (negative of errno) or zero if timed out.
| | |
|
int
|
io2Stop( int handle )
|
Stop any I/O snd or rcv already running.
Used to stop the main after a complete callback.
|
|
int
|
io2StrtRx( int handle, char* rcvDat, char* match, int maxRx, int rFlg, pfi_t callBack )
|
This call and io2StrtTx allow the program to receive characters while doing other things.
Start a receive placing the data into "rcvDat"
Receive characters (placing them into the supplied "rcvDat" buffer) until either the character count reaches "maxRx" or the "match" pattern is found in the received data or the time out "to" expires.
In the UDP mode the "rFlg" allow multiple reads of a UDP pkt, as in reading the header to get the overall len and then re-read the entire packet.
When the receive is complete call the call-back function "callBack", passing a pointer to the received data buffer.
Returns bytes received or an error (negative of errno) or zero if timed out.
|
|
int
|
io2StrtTx( int handle, int to, pfi_t callBack, int txLen, char* fmt, ... elipsis )
|
This call and io2StrtRx allow the program to send recieve characters while doing other things.
If txLen is zero transmit the characters indicated by "fmt" expanded any following arguments.
If txLen is not zero it is assumed to be binary data and no expansion is attempted.
The process waits "to" milliseconds for the transmitt to complete and if the time expires returns a zero.
Returns byte count transmitted or an error (negative of errno) or zero if timed out.
Start a transmitt of the data in the supplied buffer "txDat"
Receive characters (placing them into the supplied "rcvDat" buffer) until either the character count reaches "maxRx" or the "match" pattern is found in the received data or the time out "to" expires.
When the receive is complete call the call-back function "callBack", passing a pointer to the received data buffer.
Returns bytes received or an error (negative of errno) or zero if timed out.