Hello Wilfried

Today i made some test and the results are not good for me. I colud no t find the error that triggger the exceptior but i find that for each exception i have an 'empty' connection (no ip no port).

I will make a little explanacion of my code. My service is a tcp server very similar to the example that comes with ICS componets.

My code look like this

WSocketServerExClientConnect()
 ....
       OnDataAvailable := ClientDataAvailable;
       OnBgException := ClientBgException;
       ConnectTime := Time
....

writeinTxtFile( '--Conexiones Activas : ' + IntToStr( WSocketServerEx.ClientCount ), true );
       for i := 0 to WSocketServerEx.ClientCount - 1 do
       begin
         writeinTxtFile( Format( '--Activa[%d] IP [%s] PORT [%s]',
[ i, WSocketServerEx.client[ i ].getPeerAddr, WSocketServerEx.client[ i ].getPeerport ]
                   ) );
       end;
...
end

WSocketServerExClientDisconnect( )
...
       for i := 0 to WSocketServerEx.ClientCount - 1 do
       begin
         WriteTxtFile( Format( '--D Activa[%d] IP [%s] PORT [%s]',
[ i, WSocketServerEx.client[ i ].getPeerAddr, WSocketServerEx.client[ i ].getPeerport ]
            ) );
      end;
..
end;


When i have like 150 or 200 connections in the list i have something like this in my txt file

[05/10/2006 11:21:15:845] --D Activa[165] IP [] PORT []

and if i try to do .close call this call works but nothing happen, not to the list no exception, no disconnect event nothing.

This behavior repeats only with heavy traffic.

If i start a new valid connection after i while this connection is added to the end and works fine if no heavy traffic start again but i can free the used positions with empty connections (no ip no port).

Thank you

Miguel Angel Cañas C.


From: Wilfried Mestdagh <[EMAIL PROTECTED]>
Reply-To: ICS support mailing <twsocket@elists.org>
To: twsocket@elists.org
Subject: Re: [twsocket] TWsocket server client list Error
Date: Thu, 5 Oct 2006 15:59:48 +0200

Hello Miguel,

> However I want to ask something to, Is there a theory for the connections
> without IP and PORT that shows the TWsocketServer.client[i]?

No I have no theory at the momen. With empty  IP and Port, which
properties do you exacly mean ?

> in case that some timeotu expired, the code looks like this:

Code looks OK to me.

---
Rgds, Wilfried [TeamICS]
http://www.overbyte.be/eng/overbyte/teamics.html
http://www.mestdagh.biz

Thursday, October 5, 2006, 15:37, Miguel Cañas wrote:

> Thank you for the answer Wilfried

> Im following your suggestios and I will test the Wsockets events today with
> try .. except blocks to try to find the error.

> However I want to ask something to, Is there a theory for the connections
> without IP and PORT that shows the TWsocketServer.client[i]?

> [04/10/2006 17:24:09:296] --D Activa[1] IP [] PORT []

> because I have a procedure that check for connections to make a close socket
> in case that some timeotu expired, the code looks like this:

> //check for a valid client
> if WSocketServerEx.IsClient( WSocketServerEx.Client[ i ] ) then
>             begin
>              //Close socket. Nothing send.
>               TTcpSrvClient( WSocketServerEx.Client[ i ] ).Close;
>            end;
> I can see thar in the case of the no IP no port connections i can do a
> .Close call

> Thank you

> Miguel Angel Cañas C.


>>From: Wilfried Mestdagh <[EMAIL PROTECTED]>
>>Reply-To: ICS support mailing <twsocket@elists.org>
>>To: ICS support mailing <twsocket@elists.org>
>>Subject: Re: [twsocket] TWsocket server client list Error
>>Date: Thu, 5 Oct 2006 12:42:03 +0200
>>
>>Hello Miguel,
>>
>>BGException is background exception. It comes from the message pump.
>>This means it can come also from your code in one of the TWSocket
>>events. To test put them all in a exception block until you found the
>>error (if it is over there of course).
>>
>>Socket operation on a non socket means that somewhere some handle is
>>overwritten. Mostly this comes because you have somewhere written
>>outside a variable (so written [partly] to another).
>>
>>This is not nececary the same moment but has happend a little while
>>before it.
>>
>>Also possible is that you have a pointer to a datasocket that is not
>>exestant anymore. If you have an array of sockets or so, be sure to
>>update it on OnClientConnect / OnClientDisconnect. Remember also that in
>>OnClientDisconnect the datasocket in question is still there, it is
>>called before it is destroyed (also the count argument).
>>
>>---
>>Rgds, Wilfried [TeamICS]
>>http://www.overbyte.be/eng/overbyte/teamics.html
>>http://www.mestdagh.biz
>>
>>Thursday, October 5, 2006, 09:06, Miguel Cañas wrote:
>>
>> > Hi
>>
>> > I am using TwSocketServer in a service application that receives
>>information
>> > from a POS Machine (using TCP) and I am having problems with the number
>>of
>> > clients that shows WSocketServerEx.ClientCount. In some cases
>>clientcount
>> > return more connections than the number of machines that I have
>>connected to
>> > the service. I am saving the client list in txt file and it shows this;
>>
>> > [04/10/2006 17:24:09:296] --D Activa[0] IP [] PORT []
>> > [04/10/2006 17:24:09:296] --D Activa[1] IP [] PORT []
>> > [04/10/2006 17:24:09:296] --D Activa[2] IP [] PORT []
>> > [04/10/2006 17:24:09:296] --D Activa[3] IP [10.10.10.237] PORT [2379]
>>
>> > What happen with the positions 0,1 and 2 that shows no port or ip??
>>
>> > I have found this exception 2 segs before the addition of a new
>>'empty´(no
>> > ip or port) connection and was capture in WSocketServerExBgException.
>>
>> > [04/10/2006 17:24:07:453] [ESocketException] Msg[Error 10038 in function
>> > Disconnect (closesocket)
>> > Socket operation on non-socket]
>>
>> > Is there a relationship between this exception and the addition of the
>>new
>> > empty connection? or I have to look for the error in another place.
>> > Any help would be appreciated.
>>
>> > Thank you
>>
>> > Miguel Angel Cañas C.
>>
>> > _________________________________________________________________
>> > Express yourself instantly with MSN Messenger! Download today it's FREE!
>> > http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
>>
>>
>>--
>>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

> _________________________________________________________________
> Express yourself instantly with MSN Messenger! Download today it's FREE!
> http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/


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

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/

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

Reply via email to