HP OpenVMS Systems

ask the wizard
Content starts here

Using the IP send call?

» close window

The Question is:

I have a question on the "send" system call used on sockets.
The version of the TCP/IP installed on my OpenVMS box is,
TCPIP> show version
  DIGITAL TCP/IP Services for OpenVMS Alpha Version V5.0A
  on a AlphaStation 255/300 running OpenVMS V7.2-1
I have written a Client program that runs under the above said OpenVMS machine
 and I have used the C Socket Library routines in my client program.
I have used the "send" system call to send the data to the server program. The
 Server program runs under Digital UNIX machine and it is not under my control.
I check in my program the number of bytes returned by "send" against the number
 that I have requested it to write. And the number of bytes returned by "send"
 is not equal to that I have requested to write and it happens very
 occationally. This results in
the data going out of sync in the server side and the server starts discarding
 my packets and disconnects the connection.
For ex, if I request "send" to write 64 bytes, the return value from "send"
 tells me that it has sent only 30 bytes. I am not sure if it has written only
 30 bytes and what have happend to the remaining 34 bytes.
Now, is there a way to tell "send" to send either the entire amount of data or
 none? Is there a way to ensure that "send" will send the entire amount of data
 before we do a "send"?
Please clarify this question.

The Answer is :

  Interesting.  This would initially appear to be a bug in the send
  call or in the supporting code.  Please first apply the ECO kit
  for TCP/IP Services V5.0A, then -- if the problem persists -- please
  contact the Compaq Customer Support Center directly to report this.
  A concise source code reproducer would be useful, so that the support
  center can see the exact sequence used.

answer written or last revised on ( 24-OCT-2000 )

» close window