I stripped down a client as much as I could quickly and posted it at https://code.midrange.com/d64e8bae58.html On my linux pc I started a simple listener with netcat -l 56167. When I call the program I get the output on my pc. If I run the program without the listener running. It returns immediately.

-----Original Message-----
From: MIDRANGE-L [mailto:midrange-l-bounces@xxxxxxxxxxxxxxxxxx] On Behalf Of Kevin Bucknum
Sent: Wednesday, February 20, 2019 1:28 PM
To: Midrange Systems Technical Discussion
Subject: RE: Example socket program to send data to a non IBM i device

All the manual socket programming I did is now 17 years old, and I used Scott Klements guides as a starting point. I remember having issues with my client program getting stuck. I switched to a non blocking model, and that code is still running today with no issues with the client side.

https://www.scottklement.com/rpg/socktut/nonblocking.html


-----Original Message-----
From: MIDRANGE-L [mailto:midrange-l-bounces@xxxxxxxxxxxxxxxxxx] On Behalf Of a4g atl
Sent: Wednesday, February 20, 2019 1:16 PM
To: Midrange Systems Technical Discussion
Subject: Re: Example socket program to send data to a non IBM i device

Has anyone been able to change the send timeout values? I tried changing the SO_SNDTIMEO constant value from 70 to 10, but this has not made a difference.

I need to get the timeout changed to 3 to 5 seconds.

Darryl Freinkel.


On Wed, Feb 20, 2019 at 9:27 AM a4g atl <a4ginatl2@xxxxxxxxx> wrote:

Scott is correct. We have equipment that may not be online all the
time and in this instance, the program is waiting for the response.

At this point the "default" timeout is somewhere in the regions of 3
to 5 minutes before dropping back to my code. I am working to reduce
this to 3 seconds, today.

This is a major issue here as we have between 5 and 100 devices and
for those not responding, it delays the entire process as its a single
threaded process. 20 devices being offline results in a delay of 60 minutes.

TIA

Darryl


On Tue, Feb 19, 2019 at 1:26 PM Scott Klement
<midrange-l@xxxxxxxxxxxxxxxx>
wrote:

Alan,

I'd like to reply to some of the things in your message, I'll put my
comments inline.


The hanging thing is a new one. Are other people using this socket
server?
It doesn't sound like the socket server is not responding, it
sounds
like
you are connecting and then being hung up.

"Socket" is a set of routines that can be used for many different
things... I assume this example is TCP?

It is an extremely frequent issue with TCP that they "hang" when a
firewall is blocking the connection, or when the network connection
gets broken, etc. TCP is meant to be completely reliable, so the
receiving side will send acknowledgements of the data received, and
the sender will re-send anything that wasn't acknowledged, basically
it'll get stuck re-sending indefinitely if it gets no response.

For that reason, you should always implement a time out mechanism in
a TCP application.

Normally socket attempts to make a connection. That connection is
either accepted or rejected. If there is nothing to connect to it
just returns
an
error.

...but that error can only be received if the network connection is
open and working. If something is blocking it (a firewall, or
something like an unplugged cable, power turned off, etc... anything
that would prevent the error message being sent back) instead of an
error, you'll sit and wait indefinitely.


If by "socket server" (hate that term) you don't mean a TCP server
but you mean something else, then my comments above may not apply.
It'd help me out a lot if you'd be more specific rather than using
terms like "socket server" or "socket client". Say TCP if you mean
TCP. If you can be even more specific (like Telnet, FTP, HTTP, SMTP,
PPTP, etc) then please do.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L)
mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxx for any subscription related
questions.

Help support midrange.com by shopping at amazon.com with our
affiliate
link: https://amazon.midrange.com


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

Please contact support@xxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.com


[https://www.medtronsoftware.com/img/MedtronMinilogo.bmp] Kevin Bucknum
Senior Programmer Analyst
MEDDATA / MEDTRON
120 Innwood Drive
Covington LA 70433
Local: 985-893-2550
Toll Free: 877-893-2550
https://www.medtronsoftware.com



CONFIDENTIALITY NOTICE

This document and any accompanying this email transmission contain confidential information, belonging to the sender that is legally privileged. This information is intended only for the use of the individual or entity named above. The authorized recipient of this information is prohibited from disclosing this information to any other party and is required to destroy the information after its stated need has been fulfilled. If you are not the intended recipient, or the employee of agent responsible to deliver it to the intended recipient, you are hereby notified that any disclosure, copying, distribution or action taken in reliance on the contents of these documents is STRICTLY PROHIBITED. If you have received this email in error, please notify the sender immediately to arrange for return or destruction of these documents.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at https://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.com


[https://www.medtronsoftware.com/img/MedtronMinilogo.bmp] Kevin Bucknum
Senior Programmer Analyst
MEDDATA / MEDTRON
120 Innwood Drive
Covington LA 70433
Local: 985-893-2550
Toll Free: 877-893-2550
https://www.medtronsoftware.com



CONFIDENTIALITY NOTICE

This document and any accompanying this email transmission contain confidential information, belonging to the sender that is legally privileged. This information is intended only for the use of the individual or entity named above. The authorized recipient of this information is prohibited from disclosing this information to any other party and is required to destroy the information after its stated need has been fulfilled. If you are not the intended recipient, or the employee of agent responsible to deliver it to the intended recipient, you are hereby notified that any disclosure, copying, distribution or action taken in reliance on the contents of these documents is STRICTLY PROHIBITED. If you have received this email in error, please notify the sender immediately to arrange for return or destruction of these documents.

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.