> I  thought  about multi-threading for data sending just thinking about
> webspiders  that are much faster when multi-threading than downloading
> all data from a web page in just one thread.
> So if it is true for download...it should be for upload.

WebSpiders write data to disk file after receiving, so multithreading works 
well since when writing
to disk, the thread is blocked and another thread is able to use the CPU to 
handle data from another
request. In your case, when a thread would be blocked by something which 
doesn't affect another
thread ?

> Non threaded :
> I send data to one user, then all TCP protocol will be done until last
> ack  of  last packet sent is done, and after this data will be send to
> next IP. If the actual machine I am sending data is not responding, or
> is  very  slow  to  receive  because the bandwitdh in LAN part it is
> located on is full, then data to next machine will not be sent until
> first one completly finished to receive it.

Wrong. This doesn't take int account that TWSocket is non blocking and event 
driven. Your code is
never blocked while waiting for data to come in nor waiting for data to be 
sent. Your code is
notifyed (you get an event: OnDataSent or OnDataAvailable) and start running 
when data comes in (or
data is fully sent out).

> Threaded :
> I  send  datas to 10 IP at same time (well, not really at same time as
> they  are  passed to network card in a queued model), and whenever one
> or  two  destinations  are  really  slow,  then  other thread continue
> sending data to others.

This is exactly what happend with ICS without resorting to multithreading. 
Thanks to the
asynchronous working model.

When you send data with TWSocket, it is put into a dynamically allocated buffer 
(FIFO). Then it is
sent in the background when the layer is able to accept it. The only condition 
for it to occur is to
have a message pump properly working. Easy.

Contribute to the SSL Effort. Visit
Author of ICS (Internet Component Suite, freeware)
Author of MidWare (Multi-tier framework, freeware)

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