|
Hello, I would like to start out saying I am new to Socket Programming so please be easy on me if I use the wrong terminology. I have read about sockets in the Sorcerer's Guide as well as Scott's tutorial, and of course I did searches of the archives here. But I never saw any pointers in trouble shooting something like this. I have inherited a project from a programmer (that is no longer here). It is a socket program that allows data to be transferred from the iSeries (Server) to the PC (Client). The PC User can request a database file, the PC Client sends a request to the iSeries, the iSeries creates the file and sends the records back to the PC in (XML format) The PC reads the XML data and displays the data on the PC. Each XML record sent to the PC has a CRLF appended to the end of the record by the iSeries program (but I do not see anywhere in the PC program that checks for the CRLF so I am not sure why it does it). The application works well on most of our locations (each location has their own iSeries), but there are a couple of locations where it does not work. At the locations where it does not work - if the user requests a small file (4 or 5) records it works fine, if the user requests the same file but it has 16+ records then the PC client does not receive all the data and the PC program gets error -10053 WSAECONNABORTED when trying to get the next bit of data. Each XML record transmitted from the iSeries to the PC is aprox 350 bytes in length. I added a trace file to the iSeries program and it always sends the complete file. When I debug the PC program I see that each time it receives data it receives a different number of bytes (not sure why this is) but it works ok until it eventually tries to get the next bit of data and receives the error mentioned above. I know this is not enough information for someone to give me an answer as to what the problem is, my question is where do I start looking for the problem? Not knowing where to look, I added a delay in the iSeries program that sends the data to the Socket to wait one minute before ending and closing the socket (I thought maybe it was closing the socket before the PC had finished reading the data) but like I said I am new at this and was just guessing. When I request the exact same file (as one of the locations that is failing), the application works fine no matter how many records. Each remote location has there own iSeries and only one user is using the application at a time. Any suggestions of where I should be looking? Allen
As an Amazon Associate we earn from qualifying purchases.
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.