Re: [twsocket] TIcsSocket - Socket.Close locks up - 99% CPU

2006-01-12 Thread Peter Slater
Hi Erich

Thanks for your reply, at least I'm not the only one.
I did find a workaround though, which was not to close the sockets in the
OnSessionClose event but I HAD to close the socket in the OnClientDisconnect
event of the Listener, before I freed the client object.
It appears that when a client disconnects, the OnSessionClose and the
OnClientDisconnect events don't always get called in the same order and the
state of the Socket isn't always consistantly closed. By forcing a close in
the OnClientDisconnect event seemed to make it more stable.

I am interested in getting this working and will help where I can, as I have
based my new project on this component.

BTW, if anyone is interested I have written a simple wrapper around TWSocket
and TICSocket so that I can compile my project for both windows and linux
(with the same code base) using CrossKylix on Delphi 2005.


Hi Peter,

 I had similar experiences and had to delay my Linux implementation.  I
 have
 wanted to review the Kylix code and try and fix it as I think that this
 will
 add huge value to everyone here, myself included.  I think that I know
 where
 to start looking for these problems.  In short the Kylix implementation
 uses
 threads heavily and it's not synchronizing correctly.  I have allocated
 time
 in March and April this year to sort this out so if you can wait until
 then,
 then we may have a fix.  If you are willing to get involved in the
 process,
 please let me know.  I did look for volunteers some time ago, but only got
 a
 few responses from people saying that they could provide high level input.

 Regards

 Erich Kuba

 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
 Behalf Of Peter Slater
 Sent: Thursday, 12 January 2006 12:40 p.m.
 To: twsocket@elists.org
 Subject: [twsocket] TIcsSocket - Socket.Close locks up - 99% CPU

 Hi
 I am having a problem with the kylix version of ICS at the moment. It is
 a console tcp/ip server app running on linux. It accepts connection from
 clients and sends data to each of the clients. The problem is when the
 client disconnects, My program runs at 99% CPU and the loop is in the
 IcsSocket.Close method.

 When the client disconnects, the SockServerClientDisconnect is triggered
 which frees my client object that was created in the
 SockServerClientConnect event. In the destroy of my client object I
 close the IcsSocket  by calling Close.

If Socket.State = wsConnected then
   Socket.Close;

 It is here that there is problem
 because the IcsSocket.close function never returns.
 I  know there are worker threads involved so it could be related to my
 main thead loop which is shown below.

while not bTerminating do begin
  CheckSynchronize(1);
end;
 p.s. I am running the ics-kylix beta 4.

 Any Ideas would be appreciated
 Peter
 --
 To unsubscribe or change your settings for TWSocket mailing list
 please goto http://www.elists.org/mailman/listinfo/twsocket
 Visit our website at http://www.overbyte.be




 --

 Message: 11
 Date: Thu, 12 Jan 2006 14:52:45 -0600
 From: Jim Schultz [EMAIL PROTECTED]
 Subject: [twsocket]  Newbie- Telnet SSL with zmodem transfer
 To: twsocket@elists.org
 Message-ID: [EMAIL PROTECTED]
 Content-Type: text/plain;   charset=us-ascii

 sorry but wasn't sure how to post back to the list and keep it in the
 correct thread, if this is incorrect let me know.

 you would just have to add the zmodem protocol on top, which you can find
 for free on the internet,
 it's part of the Turbopower Async Pro package.  Just sent the data as
 TCP/IP
 packets instead of async packets.

 i do have asynch pro and have used it before turbopower quit, but only for
 serial connections not tcp stuff.  its the last part - instead of async
 packets that i have no clue about.  how do you make async packets into
 tcp/ip packets.  i've searched the async list but can't find anything
 there
 to get me started.

 tia.

 Jim


 --

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

 End of TWSocket Digest, Vol 151, Issue 7
 

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


[twsocket] TIcsSocket - 6 Sec Delay in Listener actually Listening

2006-01-12 Thread Peter Slater
Hi
I am having a problem with the kylix version of ICS at the moment. It is
a console tcp/ip server app running on linux. It accepts connection from
clients and sends data to each of the clients.

The problem is when I start the Server listening with the Socket.Listencommand.
It doesn't start Listening straight away, it takes sometimes up to 15
seconds to actually start listening for connection.

When i do a netstat -a when its in this state, there are client processes
trying to connect to the listener in TIME_WAIT state, which I think is the
problem, probably when these connections timeout is when the Listener start
listening. But this should not be the case and isn't normally the case with
sockets as far as I know. It certainly isn't this way using TWSocket on
Windows.

Any Ideas would be appreciated.

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


[twsocket] TIcsSocket - Socket.Close locks up - 99% CPU

2006-01-11 Thread Peter Slater
Hi
I am having a problem with the kylix version of ICS at the moment. It is
a console tcp/ip server app running on linux. It accepts connection from
clients and sends data to each of the clients. The problem is when the
client disconnects, My program runs at 99% CPU and the loop is in the
IcsSocket.Close method.

When the client disconnects, the SockServerClientDisconnect is triggered
which frees my client object that was created in the
SockServerClientConnect event. In the destroy of my client object I
close the IcsSocket  by calling Close.

   If Socket.State = wsConnected then
  Socket.Close;

It is here that there is problem
because the IcsSocket.close function never returns.
I  know there are worker threads involved so it could be related to my
main thead loop which is shown below.

   while not bTerminating do begin
 CheckSynchronize(1);
   end;
p.s. I am running the ics-kylix beta 4.

Any Ideas would be appreciated
Peter
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be