× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: RE: Socket related question...
  • From: Chris Bipes <rpg@xxxxxxxxxxxxxxx>
  • Date: Fri, 24 Mar 2000 14:23:19 -0800

Check your max frame size on your Network adapter card on the as400.  Also
check your interface defined for tcp/ip.  Then check your routes.  The data
is all being received but in frames of 536 bytes.  You may have to do
multiple reads until you get all the data.  This is not a problem with the
AS400 but with TCP/IP for all systems.  You can control local intranets but
routers on the internet can fragment your data, send it via different
routes.  TCP/IP will re-assemble the data for you, but you can read the
first packet into your buffer before the second arrives.  Generally you use
some sort of packet delimiter or the first bytes are binary numbers giving
you the length of the data to be read.  You have to program for this in your
application.  i.e. if the end of packet delimiter is not received, read
again or if the length received is less than the length of the data, read
again.  You may also get part of the first packet in the first read, the
rest of the first PLUS part of the second packet in the second read.

TCP/IP is not all that easy until you write the service programs to retrieve
all the data sent in either packet format.  Then you simply call the service
to read one packet and only one packet.  Parms would be socket ID,
previously created & opened, Pointer to buffer and Max length to put into
buffer.  The returned value would be the amount of data put into the buffer.


Christopher K. Bipes     mailto:ChrisB@Cross-Check.com
Sr. Programmer/Analyst   mailto:Chris_Bipes@Yahoo.com
CrossCheck, Inc.         http://www.cross-check.com
6119 State Farm Drive    Phone: 707 586-0551 x 1102
Rohnert Park CA  94928 Fax: 707 586-1884

If consistency is the hobgoblin of little minds, only geniuses work here.
Karen Herbelin - Readers Digest 3/2000


-----Original Message-----
From: Sanjiv Hati [mailto:hattys@yahoo.com]
Sent: Friday, March 24, 2000 1:37 PM
To: RPG400-L@midrange.com
Subject: Socket related question...


Hi

I have a client program on AS/400 (written in ILE C)
which send one transaction to Win NT server. The
server program (Win NT) sends the reply string which
is in a mixed format (ASCII and binary). I checked on
Win NT that the length of reply string is around 2K
bytes.
When I do a socket read() from client program (AS400),
I receive 536 bytes instead of 2K bytes. I have
defined buffer length parameter of read() to a maximum
of 32766 bytes.
I am working on OS/400 V4R3 with TCP/IP support
exclusively.
Can anyone suggest me with a solution?? I highly
appreciate  your reply.

Thanks in advance.
Sanjiv
+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---


As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.