MIDRANGE dot COM Mailing List Archive



Home » MIDRANGE-L » October 2012

Re: Socket Programming



fixed

Hi Scott,

I share your feeling on the sleep() call. The program is fairly straight
forward. It opens a socket to our SMTP server. It then loads the various
SMTP commands into a string (one at a time) and runs a subroutine that does
the send() and recv() calls separated by a sleep() call.

I've been playing with the subroutine a bit. The data from the recv() call,
if any is even returned, is not used by the program. I commented out both
the sleep() and recv() calls. Nothing else was changed. The program no
longer sends an email. After uncommenting out the sleep() call, the email
is sent again.

This was late in the day and I didn't have time to do any debuging, which I
will do this morning to see if the send() call is failing for some reason.
Do the send() and recv() calls need to be used together? Can I do a send()
and never a recv()? At least as far as SMTP goes?

Thanks,

Vic

On Mon, Oct 15, 2012 at 4:57 PM, Scott Klement
<midrange-l@xxxxxxxxxxxxxxxx>wrote:

Hi Victor,

It's hard to see how a sleep() call would help in sending an e-mail? I
could see using delays like this if you're using QtmmSendMail(), since
that program hands the file off to a background job which may take a
moment to handle the file

But if you're coding an SMTP client (i.e. coding your own SMTP routine
with the socket API) this should be a non-issue? Unless something
strange is going on?

-SK

On 10/15/2012 1:45 PM, Victor Hunt wrote:
I've run across an RPG program that uses socket APIs to send an email.
Once
the socket is setup and opened, the program uses a subroutine to do all
the
send/receive functions. Just after the send, the subroutine runs the
sleep
API with a parameter of 1 second. It appears the original intent was to
give the email server and/or network time to produce/deliver a response
before the receive API runs. Does anyone think this built in delay is
really necessary? Depending on what is being sent, this program can run
for
a very long time with these roughly 1 second delays. Also, the program
doesn't do anything with the received data collected after the send API.
Is
it really necessary to do a receive after a send? Seems I can tighten
this
up a bit.

Thanks,

Vic

--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.







Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2014 by MIDRANGE dot 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 here. If you have questions about this, please contact