Hello Miguel, No not configuration. the socket handle is probably somewhere overwritten. Please check carefull all variable usage, and specially arrays that may got overrun.
> My TWsocketServer object : > LocalAddr = '0.0.0.0'//set in runtime > LocalPort = '0' //set in runtime Try to not set it, you never know. However I dont think it can cause the behavour you have. > OnDataSent = WSocketServerExDataSent > OnSessionClosed = WSocketServerExSessionClosed Set this in comment as it will never fire on server socket. --- Rgds, Wilfried [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html http://www.mestdagh.biz Thursday, October 12, 2006, 06:58, Miguel Cañas wrote: > Hi Wilfried > Sorry but I didn-t have time to do a test program, I am in a dead line and I > have another errors to fix too but this one is critical to me because the > service is starting to loose connections. > Let me explain better: > 1. The connections Startt to grow because of the processing time, the > service is processing as fast as possible. > 2. I have like 50 to 60 connections in the client list > (Wsocketserver.clientcount) > 3. I have the first Error 10038 in function Disconnect (closesocket) Socket > operation on non-socket > 4. Im using TcpView > (http://www.sysinternals.com/Utilities/TcpView.html) > and I saw that the new connection got into the list of the program but next > disappeared and my program didnt run the onConnect event, at least no t the > part that is into my program. > 5. After that I saw the connection with no IP no port info and the Hsokcet > value = -1. > Could it be a configuration problem ? in the TWsocket server ? or in the > server PC? > My TWsocketServer object : > LineMode = False > LineLimit = 65536 > LineEnd = #13#10 > LineEcho = False > LineEdit = False > Proto = 'tcp' > LocalAddr = '0.0.0.0'//set in runtime > LocalPort = '0' //set in runtime > LastError = 0 > MultiThreaded = False > MultiCast = False > MultiCastIpTTL = 1 > ReuseAddr = False > ComponentOptions = [] > ListenBacklog = 1000 //s > ReqVerLow = 1 > ReqVerHigh = 1 > OnDataSent = WSocketServerExDataSent > OnSessionClosed = WSocketServerExSessionClosed > OnBgException = WSocketServerExBgException > FlushTimeout = 60 > SendFlags = wsSendNormal > LingerOnOff = wsLingerOn > LingerTimeout = 0 > KeepAliveOnOff = wsKeepAliveOnSystem > KeepAliveTime = 30000 > KeepAliveInterval = 1000 > SocksLevel = '5' > SocksAuthentication = socksNoAuthentication > BannerTooBusy = 'Sorry, too many clients' > MaxClients = 300 > OnClientDisconnect = WSocketServerExClientDisconnect > OnClientConnect = WSocketServerExClientConnect > Miguel Angel Cañas C. >>From: Wilfried Mestdagh <[EMAIL PROTECTED]> >>Reply-To: ICS support mailing <[email protected]> >>To: ICS support mailing <[email protected]> >>Subject: Re: [twsocket] TWsocket server client list Error >>Date: Fri, 6 Oct 2006 12:35:51 +0200 >> >>Hello Miguel, >> >>Your code looks OK. Very strange this behavour. Can you make a simple >>demo (GUI) project to demonstrate the behavour ? Possible I have time >>this weekend to investigate it. >> >>--- >>Rgds, Wilfried [TeamICS] >>http://www.overbyte.be/eng/overbyte/teamics.html >>http://www.mestdagh.biz >> >>Friday, October 6, 2006, 03:25, Miguel Cañas wrote: >> >> > 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 <[email protected]> >> >>To: [email protected] >> >>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 <[email protected]> >> >> >>To: ICS support mailing <[email protected]> >> >> >>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 > _________________________________________________________________ > 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
