|
|
NetIPC 3000/XL Programmer's Reference Manual: HP 3000 MPE/iX Computer Systems > Chapter 3 NetIPC IntrinsicsIPCSEND |
|
Sends data on a connection.
The IPCSEND intrinsic is used to send data on a connection. The only required parameters are vcdesc, data, and dlen (option variable). A set of addresses in the data parameter allows vectored data to be gathered from multiple locations. The value specified for the data offset option (compatibility mode only) is relative to the data array. If data descriptors are used, specifying this option will cause a portion of the descriptor to be passed over (the offset is NOT applied to the pointer in the descriptor). This may lead to unexpected results. If this intrinsic is called in nowait mode, the address of the data is passed to the TCP protocol module. The contents of the data buffer will have been read when IOWAIT completes. As many as 7 nowait sends may be outstanding on a connection. Condition codes returned by IPCSEND and IOWAIT are:
This intrinsic can be called in split stack mode. The following Table 3-10 “IPCSEND Protocol Specific Parameters” outlines parameters that are specific to the particular protocol you are accessing. Table 3-10 IPCSEND Protocol Specific Parameters
Setting the Q bit flag causes X.25 to set the Q bit (qualifier bit) in X.25 data packets. Setting the D bit flag causes X.25 to specify end-to-end acknowledgment of data packets. IPCSEND does not complete until it receives acknowledgment that the message has been received. Common errors returned by IPCSHUTDOWN in result are:
A complete table of SOCKERRs is included in Appendix C “Error Messages” The urgent data bit of the protocol flags option (opt parameter) is used to inform TCP that the data to be sent should be marked urgent. This will not cause the data to be delivered out of band, and the receiver of this data will not know of urgent data that is pending until a receive is posted. The following are cross-system programming considerations for this intrinsic: Send size — The HP 3000 send size range is 1 to 30,000 bytes. The HP 1000 send size is 1 to 32,767 bytes. Although the ranges are different, cross-system communication is not affected. If you specify a send or receive size, be sure it is within the correct range for the respective system. Note that the urgent data bit is not supported on the HP 1000; however, if this bit is set by the HP 3000 program, it will be ignored by the receiving process on the HP 1000. Send size — The HP 3000 send size range is 1 to 30,000 bytes. The HP 9000 send size is 1 to 32,767 bytes. Although the ranges are different, cross-system communication is not affected. If you specify a send or receive size, be sure it is within the correct range for the respective system. Note that the urgent data bit is not supported on the HP 9000; however, if this bit is set by the HP 3000 program, it will be ignored by the receiving process on the HP 9000. For differences in send and receive sizes see the discussion for IPCRECVCN. Send size — The PC send and receive size range is 1 to 65,535 bytes. Although the ranges are different, cross-system communication is not affected. If you specify a send or receive size, be sure it is within the correct range for the respective system. On the PC, you can specify the maximum receive size of the data buffer through the got array in the IPCCONNECT call. This determines what the maximum value for dlen can be for any IPCRECV call. PC NetIPC has no option array defined for IPCCONNECT. This does not affect cross-system communication. The maximum receive size of the data in the buffer on the HP 3000 will determine the receive size buffer on the PC. |
|