Re: [twsocket] TWSocket closing after every transaction with external HTTP server

2012-04-05 Thread Dod
Hello,

How do you now socket has been closed ? have you done some tcpdump
compare between wroking and non-working system ?

May be some users are going out thru a proxy that remove the
keep-alive ?

regards.

r Hello,

r I have a Delphi 6 application that talks to an external device that acts as 
an HTTP server. I am using the ICS TWSocket components for this application. I 
open up a socket to talk to the device
r and handle the necessary header and body crafting to talk to the server. In 
other words, I am not using the ICS HTTP client component but using the lower 
level TWSocket component and handling the
r necessary HTTP handshaking myself.

r The headers I craft and send to the external device have the keep-alive flag 
set to TRUE. On my system, after I send anything to the external device, the 
connection will stay open continuously and
r will not close until approximately 30 seconds of inactivity occurs (30 
seconds where I don't make any requests of the external device as an HTTP 
server). I don't know if the external device closes
r it or if Microsoft Windows does it. But the important point is that normally 
I can do multiple sends and the connection will stay open until I send nothing 
for about 30 seconds. This works fine
r and is what my code expects.

r However, on some of my users systems the socket is closing after every send. 
I do have code that checks for a closed socket and attempts a reconnect to the 
external device if necessary, but does
r not expect to have to do a reconnect with each transaction.

r My questions are:

r Is there a system setting for sockets that might be causing this anomalous 
behavior on some users systems?

r If so, are there Windows API function calls I can use to query the offending 
parameter and then set it to the expected close on 30 seconds of inactivity 
instead of with each transaction?

r If so, can I, or how do I do it in a manner that will not adversely affect 
any other programs running on the users system?

r Thanks,
r Robert
r --
r To unsubscribe or change your settings for TWSocket mailing list
r please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
r Visit our website at http://www.overbyte.be

--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


Re: [twsocket] TWSocket closing after every transaction with external HTTP server

2012-04-05 Thread robertoschler
Hello Dod,

I know the socket is closed because the TWSocket OnSessionClosed() event fires. 
 There are no proxies because the external device is on the Intranet (same 
router and network) as the PC.  It's a local peer connection.

Robert.

--- On Thu, 4/5/12, Dod do...@yahoo.com wrote:

 From: Dod do...@yahoo.com
 Subject: Re: [twsocket] TWSocket closing after every transaction with 
 external HTTP server
 To: ICS support mailing twsocket@elists.org
 Date: Thursday, April 5, 2012, 5:36 AM
 Hello,
 
 How do you now socket has been closed ? have you done some
 tcpdump
 compare between wroking and non-working system ?
 
 May be some users are going out thru a proxy that remove
 the
 keep-alive ?
 
 regards.
 
 r Hello,
 
 r I have a Delphi 6 application that talks to an
 external device that acts as an HTTP server. I am using the
 ICS TWSocket components for this application. I open up a
 socket to talk to the device
 r and handle the necessary header and body crafting to
 talk to the server. In other words, I am not using the ICS
 HTTP client component but using the lower level TWSocket
 component and handling the
 r necessary HTTP handshaking myself.
 
 r The headers I craft and send to the external device
 have the keep-alive flag set to TRUE. On my system, after I
 send anything to the external device, the connection will
 stay open continuously and
 r will not close until approximately 30 seconds of
 inactivity occurs (30 seconds where I don't make any
 requests of the external device as an HTTP server). I don't
 know if the external device closes
 r it or if Microsoft Windows does it. But the important
 point is that normally I can do multiple sends and the
 connection will stay open until I send nothing for about 30
 seconds. This works fine
 r and is what my code expects.
 
 r However, on some of my users systems the socket is
 closing after every send. I do have code that checks for a
 closed socket and attempts a reconnect to the external
 device if necessary, but does
 r not expect to have to do a reconnect with each
 transaction.
 
 r My questions are:
 
 r Is there a system setting for sockets that might be
 causing this anomalous behavior on some users systems?
 
 r If so, are there Windows API function calls I can use
 to query the offending parameter and then set it to the
 expected close on 30 seconds of inactivity instead of with
 each transaction?
 
 r If so, can I, or how do I do it in a manner that will
 not adversely affect any other programs running on the users
 system?
 
 r Thanks,
 r Robert
 r --
 r To unsubscribe or change your settings for TWSocket
 mailing list
 r please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
 r Visit our website at http://www.overbyte.be
 
 --
 To unsubscribe or change your settings for TWSocket mailing
 list
 please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
 Visit our website at http://www.overbyte.be
 
--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be