Use CloseDelayed instead of Close. -- [EMAIL PROTECTED] http://www.overbyte.be
----- Original Message ----- From: "Jack" <[EMAIL PROTECTED]> To: "ICS support mailing" <twsocket@elists.org> Sent: Thursday, May 19, 2005 12:35 AM Subject: Re[2]: [twsocket] Receive result of the first ReceiveStr() call twice > Hello Wilfried, > > Sure. Below is my event handler code. Hope I'm doing something > wrong, otherwise, it's really strange. TProxyChecker is the owner > object of the TProxySocket object array. TProxySocket is derived > from TWSocket. > > procedure TProxyChecker.WSocketDataAvailable(Sender: TObject; ErrCode: Word); > var s: String; > begin > if ErrCode = 0 then > with TProxySocket(Sender) do > begin > s := ReceiveStr(); > Log(s); > Close(); > end; > end; > > The destination server is a commercial http proxy server. > I tried using #13#10 and #13#10#13#10, I different strings > read back from ReceiveStr. But the second string includes > the first string in both cases. So it shouldn't be the server > sending the string twice. > > BTW, I'm using the latest ICS. > > -- > Best regards, > Jack > > Wednesday, May 18, 2005, 3:31:32 PM, you wrote: > > WM> Hello Jack, > > WM> Can you show your OnDataAvailable handler ? > WM> Eventually download SocketSpy from 'user made' page and 'hang' it > WM> between client and server. Then you see exacly what is sent by server. > > WM> --- > WM> Rgds, Wilfried > WM> http://www.mestdagh.biz > > WM> Wednesday, May 18, 2005, 20:48, Jack wrote: > > >> Hello Francois and all, > > >> I'm using a TWSocket client in LineMode with LineEnd set to #13#10. > >> I connect to a HTTP proxy server using CONNECT command. I then get > >> a reply back from the HTTP proxy from ReceiveStr() > > >> Things look OK except that I am receiving the data from the first > >> ReceiveStr() call twice. I get two WSocketDataAvailable messages for > >> 3 lines in the HTTP response: > > >> Line 1: HTTP/1.0 200 Connection established > >> Line 2: Proxy-agent: Proxy+ 3.00 > >> Line 3: (Blank line) > > >> However, I'm getting the first ReceiveStr() result twice, see below: > >> I'm getting "HTTP/1.0 200 Connection established" twice: > > >> 5/18/2005 2:36:43 PM WSocketDataAvailable idx=0 addr=127.0.0.1:4480 > >> ErrCode=0 > >> 5/18/2005 2:36:43 PM HTTP/1.0 200 Connection established > >> 5/18/2005 2:36:43 PM > >> 5/18/2005 2:36:43 PM > >> 5/18/2005 2:36:43 PM WSocketDataAvailable idx=0 addr=127.0.0.1:4480 > >> ErrCode=0 > >> 5/18/2005 2:36:43 PM HTTP/1.0 200 Connection established > >> Proxy-agent: Proxy+ 3.00 > > > >> I then changed LineEnd to #13#10#13#10, I still get the result of > >> the first ReceiveStr() twice, this time the result is two lines: > > >> HTTP/1.0 200 Connection established > >> Proxy-agent: Proxy+ 3.00 > >> (Blank line) > > >> 5/18/2005 2:40:11 PM WSocketDataAvailable idx=0 addr=127.0.0.1:4480 > >> ErrCode=0 > >> 5/18/2005 2:40:11 PM HTTP/1.0 200 Connection established > >> Proxy-agent: Proxy+ 3.00 > > > >> 5/18/2005 2:40:11 PM > >> 5/18/2005 2:40:11 PM > >> 5/18/2005 2:40:11 PM WSocketDataAvailable idx=0 addr=127.0.0.1:4480 > >> ErrCode=0 > >> 5/18/2005 2:40:11 PM HTTP/1.0 200 Connection established > >> Proxy-agent: Proxy+ 3.00 > > > >> It seems that, somehow the first ReceiveStr() didn't remove the data > >> from the buffer. Or am I missing anything? > > > >> -- > >> Best regards, > >> Jack > > > > > > > -- > 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 > -- 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