Hello SZ,

why then the data comes through the WSocketGetProc('recv') function, in
WSocket_Synchronized_recv? This IS Winsock! And if I set a breakpoint
to this FRecv(s, Buf^, len, flags); then every thread running through this
function causes a stop on all threads!

Regards,
Markus Mueller
> AFAIK, Winsock buffers as much as only its buffer size data! It is ICS that
> buffers data when you have paused it and when you press F8 on a breakpoint,
> all threads run in the background.
>
> HTH,
>
> SZ
>
> On Fri, Jan 23, 2009 at 7:41 PM, Markus Mueller <twsoc...@priv.de> wrote:
>
>   
>> Hello Arno Garrels and...
>>
>> Special Hello to Francois Piette! Please look at the "@Francois Piette"
>> at the end of this mail!
>>     
>>>> This is exactly the point! I just don't get who reads the data, but
>>>> there is defintively
>>>> something reading all the available data (into a buffer?)!
>>>> Later I see
>>>> the data flowing
>>>> through the "WSocket_Synchronized_recv": So I think it can only be
>>>> Winsock who
>>>> is buffering, cause the actual data reading call is "FRecv" which is a
>>>> Winsock function!
>>>> Am I right at this?
>>>>
>>>>         
>>> Yes, that's correct.
>>>
>>>       
>> Ok, this proves that Winsocks is buffering megabytes of data before
>> "TWSocket.pause" becomes active!
>>     
>>>> For your information: I have beside the GUI two threads: One server
>>>> and
>>>> one client
>>>> thread. Hmmm... Delphi does stop all threads if I am at a breakpoint,
>>>> doesn't it?
>>>>
>>>>         
>>> Yes, that's correct.Do you use LineMode? I do not think so but should be
>>>       
>> asked anyway.
>>     
>>> If LineMode is turned on the component indeed buffers data internally.
>>>
>>>       
>> No, I don't!
>>     
>>> Hmm, should you realy use LineMode the set a breakpoint in (OverbyteIcs)
>>> WSocket.pas:
>>> function TCustomLineWSocket.TriggerDataAvailable(ErrCode : Word) :
>>>       
>> Boolean;
>>     
>>> At the line where Receive is called.
>>>
>>> If you do not use LineMode winsock is most likely the reason.
>>> Or maybe you have you increased the default Socket receive buffer size,
>>> property SocketRcvBufSize?
>>>
>>>       
>> I am not using LineMode. If you look at TriggerDataAvailable you'll see
>> that it never
>> gaves the DoRecv in AsyncReceive a change to read. So I think it is
>> proved that the
>> problem is in Winsock, do you also think so?
>>
>> @Francois Piette: If I send you a proved example, is there any chance to
>> geht this
>> issue fixed?
>>
>> Much regards,
>> Markus Mueller
>>
>> --
>> 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

Reply via email to