|
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 mailing list archive is Copyright 1997-2025 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.