Re: [twsocket] Client Connect Timeout: How do I useTWSocket.TimeoutConnect?

2012-11-07 Thread Arno Garrels
Doug Billi wrote: > I want my TCP client to timeout if it can't connect within 3 seconds. Note, that if you call Connect with a host name TWSocket performs a blocking DNS lookup that cannot be canceled. Such blocking DNS lookup also prevents the timeout timer from working. In order to be able to

[twsocket] Client Connect Timeout: How do I use TWSocket.TimeoutConnect?

2012-11-07 Thread Doug Billi
I want my TCP client to timeout if it can't connect within 3 seconds. I've looked at the documentation, but it isn't clear how the TimeoutConnect property should be specified (milliseconds, seconds?). After examining the code, it looks somewhat complicated with additional properties like Timeo

Re: [twsocket] Optimal number of TWSocket per thread

2012-11-07 Thread Max Terentiev
Arno, It's should be optimized anyway because multipart/alternative messages can be relatively large (20-30 kb of html+text+headers). To send this message current implementation perform about 320 calls to DataNext. While optimized - only 20 calls. For high load smtp relay it's a VERY big differe

Re: [twsocket] Optimal number of TWSocket per thread

2012-11-07 Thread Angus Robertson - Magenta Systems Ltd
> I perform some tests but cannot send fasten than 200 megabit/sec. Which is pretty good performance, presumably you need more because this is running on a hosted server with gigabyte connectivity? > I see RFC 2821 and found what max line length can be 1000 > characters! Not strictly relevant

Re: [twsocket] Optimal number of TWSocket per thread

2012-11-07 Thread Arno Garrels
Max Terentiev wrote: > Hi Angus, > > I perform some tests but cannot send fasten than 200 megabit/sec. > > On large messages (100kb+) Looks like a bottleneck in > SmtpCli's Data/DataNext function. > > I see the code and found what DataNext send message line by line. You are right, that's indeed

Re: [twsocket] Optimal number of TWSocket per thread

2012-11-07 Thread Max Terentiev
Hi Angus, I perform some tests but cannot send fasten than 200 megabit/sec. On large messages (100kb+) Looks like a bottleneck in SmtpCli's Data/DataNext function. I see the code and found what DataNext send message line by line. Since typical MIME message contains lines with max 64 characters

Re: [twsocket] Why is TWSocket.OnDataSent being called twice?

2012-11-07 Thread Arno Garrels
Doug Billi wrote: > I've heard a lot about IOCP > and wondered how much benefit (if any) such an implementation would > have over standard asynchronous sockets. I had thoughts, yes. I even wrote a little test server however speed didn't convince me. And of course, since IOCP is Windows only i

Re: [twsocket] Why is TWSocket.OnDataSent being called twice?

2012-11-07 Thread Doug Billi
Thanks for the clarification, I appreciate it. As a side note, I'm switching all of my code from Indy to ICS. The performance benefits are already paying off. What originally motivated the change was that the Indy code doesn't scale well at all. In just one example during my investigation, I

Re: [twsocket] Optimal number of TWSocket per thread

2012-11-07 Thread Angus Robertson - Magenta Systems Ltd
> How many TSmtpCli(s) should be used inside one TThread ? > I need to send about 4000 messages in parallel, so I need 4000 > TSmtpCli(s). > At this time I try to use 25 TSmtpCli per Thread but see very high > CPU usage and app interface responding this delays.. The 'app interface' could be your

[twsocket] Optimal number of TWSocket per thread

2012-11-07 Thread Max Terentiev
Hi, I need to implement high performance smtp relay. I use TSmtpCli inside threads as smtp workers (SmtpCli->MultiThreaded=true, and my own message loop). How many TSmtpCli(s) should be used inside one TThread ? I need to send about 4000 messages in parallel, so I need 4000 TSmtpCli

Re: [twsocket] Ftp client

2012-11-07 Thread Angus Robertson - Magenta Systems Ltd
> I use TFtpClient to upload data to a FTP sites. It works if the FTP > site has a hostname like ftp.yoursite.com > But now I need to upload to a site with an IP address, which is > ftp://196.211.60.155 Use the IP address alone instead of the hostname, ignore the ftp:// which is only intended

[twsocket] Ftp client

2012-11-07 Thread Bennie Oppermann
Hi I use TFtpClient to upload data to a FTP sites. It works if the FTP site has a hostname like ftp.yoursite.com But now I need to upload to a site with an IP address, which is ftp://196.211.60.155 What happens now is it returns with an exception (11004), and does not connect. I also tried o