× 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.



No problem. I really do not believe in grabbing code snippets for TCP programming because you have to know what's going on under the hood. That's was my point, there are too many things to consider. A program working fine today fails tomorrow because of some network problem never unit tested for. That's why I believe you need to start at square one and study and write a lot of fundamental TCP code. Basic send/receive examples just scratch the surface. Whether you use a library or not if the program does not test and react to failed network conditions it will ultimately fail outside of unit testing where everything tends to work perfectly, everytime. :)




Subject: RE: TCP/IP Sockets from RPG> Date: Wed, 6 Feb 2008 11:21:42 -0600> From: Lim.Hock-Chai@xxxxxxxxxxxxxxx> To: rpg400-l@xxxxxxxxxxxx> > Ted,> My comment is based on rdline procedure posted on Scott's web site> http://www.scottklement.com/rpg/socktut/readline.html.> > In rdline, it is coded to receive data one byte at a time. It returns> control back to caller when buffer is full or lf is encountered. ==>> The guesstimate thing that you mentioned is already handled by rdline.> > The only thing that I see in rdline that could give a clue on OP's> problem is that rdline will return -1 when recv() return value is less> than 1 and no data was being put to the buffer yet. The OP mentioned> that he is having problem with errno (Not sure what kind of problem he> is having). Anyway, that leads me to think that it might be because> recv() is returning 0.> > > -----Original Message-----> From: rpg400-l-bounces@xxxxxxxxxxxx> [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Ted Slate> Sent: Wednesday, February 06, 2008 10:55 AM> To: rpg400-l@xxxxxxxxxxxx> Subject: RE: TCP/IP Sockets from RPG> > There are many(almost 20) error conditions that recv can return on the> i. A -1 return code means check errno for one of many conditions. In> fact, the end of a receive stream does not close a socket connection> unless an error should occur on the other end. If you get a 0 return> code(amount) then you can close the socket(your end) and re-connect> depending on the application. But as I stated before, the amount of> transmission send and receive should not be a guesstimate, so you should> know when to stop requesting data in some way shape or form. You cannot> just keep reading bytes until a return code less than 1.> > If you want to get started with socket programming on the i start here:> > http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=/a> pis/aplist.htm> > > > > > Subject: RE: TCP/IP Sockets from RPG> Date: Wed, 6 Feb 2008 08:54:13 > > -0600> From: Lim.Hock-Chai@xxxxxxxxxxxxxxx> To: rpg400-l@xxxxxxxxxxxx>> > > > Looking at Scott's rdline example, seems like it will return a -1 > > when> recv() returned value is less than 1.> > You migth want to debug> > > rdline to see what is the actual value that> recv() returned. If it is> > > a 0, that means the server has disconnected> you connection.> > > > > > -----Original Message-----> From: rpg400-l-bounces@xxxxxxxxxxxx> > > [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Christopher > > Anderson> Sent: Monday, February 04, 2008 11:07 AM> To: > > rpg400-l@xxxxxxxxxxxx> Subject: TCP/IP Sockets from RPG> > > Good > > morning everyone,> > I've been attempting to create a socket > > connection to a report vendor> using Scott Klement's (hi Scott) > > tutorial on that subject. I've managed> to successfully establish the > > socket connection AND send the request> records downstream but the > > segment of the program that accepts the> response doesn't> work as I anticipated which leads me to believe I'm not> getting the> concept very well. > > What I need to do is accept a number of records> into the buffer until I> get an END TRANSMISSION record. Each record> will be the same length and> is identified internally. So, I'll grab one> record, decide what type it> is and process it then read the next record> from the buffer. I'm also> supposed to put a 60 second time out on this> segment of code but we'll> blow up that bridge later.> > The logic is:>> > DOU LastRecord = *On;> rc = rdline(sock: %addr(recbuf): %size(recbuf):> *On);> if rc < 0;> err = errno;> callp close(sock);> callp> die('rdline(): ' + %str(strerror(err)));> return;> endif;> > TestRecord> = recbuf; // This moves what's in the buffer into a> DS that can locate> the > // record type field.> // Process record.> > ENDDO;> > What> happens is the system works for a while on the rc=rdline... Line> then> returns -1 for rc and the errno variable comes back with an error> when> I at tempt to eval it in debug. (A type error). > > Does anyone have> any idea what I'm doing wrong or what I'm missing? > > Thank you,> Chris> Anderson> Partners Mutual Insurance> --> This is the RPG programming on> the AS400 / iSeries (RPG400-L) mailing> list To post a message email:> RPG400-L@xxxxxxxxxxxx To subscribe,> unsubscribe, or change list> options,> visit: http://lists.midrange.com/mailman/listinfo/rpg400-l> or> email: RPG400-L-request@xxxxxxxxxxxx> Before posting, please take a> moment to review the archives at> http://archive.midrange.com/rpg400-l.>> > -- > This is the RPG programming on the AS400 / iSeries (RPG400-L)> mailing list> To post a message email: RPG400-L@xxxxxxxxxxxx> To> subscribe, unsubscribe, or change list options,> visit:> http://lists.midrange.com/mailman/listinfo/rpg400-l> or email:> RPG400-L-request@xxxxxxxxxxxx> Before posting, please take a moment to> review the archives> at http://archive.midrange.com/rpg400-l.>> _________________________________________________________________> Connect and share in new ways with Windows Live.> http://www.windowslive.com/share.html?ocid=TXT_TAGHM_Wave2_sharelife_012> 008> --> This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing> list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe,> unsubscribe, or change list options,> visit: http://lists.midrange.com/mailman/listinfo/rpg400-l> or email: RPG400-L-request@xxxxxxxxxxxx> Before posting, please take a moment to review the archives at> http://archive.midrange.com/rpg400-l.> > -- > This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list> To post a message email: RPG400-L@xxxxxxxxxxxx> To subscribe, unsubscribe, or change list options,> visit: http://lists.midrange.com/mailman/listinfo/rpg400-l> or email: RPG400-L-request@xxxxxxxxxxxx> Before posting, please take a moment to review the archives> at http://archive.midrange.com/rpg400-l.>
_________________________________________________________________
Need to know the score, the latest news, or you need your Hotmail®-get your "fix".
http://www.msnmobilefix.com/Default.aspx

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

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.