×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




Scott Klement has an excellent socket tutorial on his web site.

Mark Walter
Paragon Consulting Services, Inc.
IBM Certified System i Specialist
717-764-7909 Ext. 26
mwalter@xxxxxxxxxxxxxxx
www.paragon-csi.com



Ted Slate <tslateone@xxxxxxxxxxx>
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
02/06/2008 11:54 AM
Please respond to
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>


To
<rpg400-l@xxxxxxxxxxxx>
cc

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=/apis/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_012008


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