[twsocket] Throughput problem with TWSocket over a long line

2007-01-12 Thread Tobias Rapp
Hi! I have a throughput/performance problem using the latest stable version of the ICS package. When using a TWSocket derived application over an TCP/IP connection with high round trip times and small packet sizes (it is an 155 MBit ATM line) the throughput is very low. To check, if there is a

Re: [twsocket] Throughput problem with TWSocket over a long line

2007-01-12 Thread Tobias Rapp
Hello Dod, Are you using ICS in sync or async mode ? I'm using ICS in async (event driven) mode in my application. The file is sent in fragments of 256KB in the OnDataSent event handler. Do yo use same buffer and write-to-disk as Indy ? When comparing ICS and Indy I did not use my

Re: [twsocket] Throughput problem with TWSocket over a long cable

2007-01-12 Thread Tobias Rapp
Hello Dod, Do you see any CPU overload server side during transfert ? CPU load varies from 2% to 5% while the FTP file transfer is running. /Tobias -- NOA Audio Solutions Vertriebsges.m.b.H.Tel: +43-1-5452700 Johannagasse 42/4 Fax: +43-1-545270014 A - 1050 Wien

Re: [twsocket] Throughput problem with TWSocket over a long line

2007-01-15 Thread Tobias Rapp
To improve performance you can make your packets equal to the MTU, or switch Nagle off. There are some notes on Microsoft site about this. If you search for Nagle on MSDN you will find a lots information about that. They dont encourage to switch it off but in some cases (maybe yours) it is

Re: [twsocket] Throughput problem with TWSocket over a long line

2007-01-16 Thread Tobias Rapp
Hi Wilfried, You find on my site a few programs to test performance with TWSocket. I have found the PerformanceTest project and tested it. In the first run it also gave the well-known value of ~1.2MB/s. Then I digged into TWSocket's Send() function and found the BufSize property. After changing

Re: [twsocket] Throughput problem with TWSocket over a long line

2007-01-16 Thread Tobias Rapp
Hi SZ, I think your problem should be in the message pump. What do you use for that in your thread? When I switched to GetMessage from PeekMessage, I was WOW! I use TWSocket's MessageLoop() function in my threaded application which uses GetMessage() internally. And Wilfried's test programm

Re: [twsocket] Throughput problem with TWSocket over a long line

2007-01-16 Thread Tobias Rapp
Hello Wilfried, Looks like http://support.microsoft.com/default.aspx?scid=kb;en-us;823764 is wrong in my special case or the system is automagically increasing the Can you resent the URL please ? It seems dead here. http://support.microsoft.com/default.aspx?scid=kb;en-us;823764 It's the

Re: [twsocket] Throughput problem with TWSocket over a long line

2007-01-16 Thread Tobias Rapp
Hello Arno, By default winsock's send buffer size is 8 kb which is much bigger than TFtpCli's constant BLOCK_SIZE of 1460 bytes. So one condition described in the article is not true since a single send call in TFtpCli does not fill the whole underlying winsock send buffer. I realy wonder

Re: [twsocket] Throughput problem with TWSocket over a long line

2007-01-18 Thread Tobias Rapp
Hello Arno, I would play with sligtly increased SocketSndBufSize and a BufSize set to something below like 16/8 and 32/16 kb. TWSocket's property BufSize actually is the block size and the amount of data copied into the winsock buffer in a single (winsock) send call. Unfortunately the

Re: [twsocket] Project proposal

2007-03-02 Thread Tobias Rapp
I would be very interested if you start this project as my company also thinks that in the future it might be interesting to port some of our Windows service applications to GNU/Linux. When evaluating what way to go I thought that either Kylix could be used (but is that product still active?) or

Re: [twsocket] Architectural question II

2007-03-22 Thread Tobias Rapp
Something like attached below? It creates its window thread-save, but I prefer a timer that was able to use the hidden window(s) of V6, or may be we think about a windowless timer (Thread, signals, and WaitForMultipleObjects)? Just for interest: What is the drawback of using a own window

Re: [twsocket] TSmtpCli Attach files without real files

2007-05-24 Thread Tobias Rapp
I have not tried it but from looking at the sources I would say that it might work if you would change the OnAfterFileOpen event so that it passes the FStream as a var variable. Then you could initialize that stream variable with a memory- or stringstream in your event handler. Maybe you will have

Re: [twsocket] TWSocket for .Net and C#?

2007-08-06 Thread Tobias Rapp
Anyway, I am doing some Visual Studio 2005 projects and I want to have a good async-component. Basically TWSocket but that it can be used in C# and .net. Does such exist or is it somehow possible to use TWSocket in such projects? I was even thinking of doing an ActiveX wrapper around TWSocket

Re: [twsocket] Delphi2007,UDP, 2x packets

2007-09-12 Thread Tobias Rapp
How do you manage missed/double/wrong ordered packets? Each packet got some sequence ID and alive packets were sent from time to time. Also there was no special acknowledge packet - each received packet contained the last successful received ID of the sender. If one side detects that an

Re: [twsocket] Using SourceForge for ICS ?

2007-10-04 Thread Tobias Rapp
Hello, The first decision is should I select CVS or SVN ? Any advice appreciated. I'm using SVN together with TortoiseSvn each day in my work for more than a year now. Did not have any serious problems since (the only thing that I stumbled over is the filename case-sensitivity issue - but that

Re: [twsocket] FTPClient Put problem

2008-02-27 Thread Tobias Rapp
Fias Norbert István wrote: The problem is that Indy sends a large amount TCP segments as the received window increasing and as no drop occured while ICS FTP client does not increase the number of sent segments, so the unacknowledged amount of bytes is not increasing. I have experienced

[twsocket] Problem with ICS package and Delphi 2006

2008-03-06 Thread Tobias Rapp
Hello everybody! I have a problem related with the ICS package 'IcsDel100.dpk'. I have it installed fine with Delphi 2006. Now I have a self-made package that depends on tWSocket and thus has 'IcsDel100' in the packages requires clause. When I try to compile the package I get the following

[twsocket] Always set MultiThreaded flag TRUE in tWSocket?

2008-03-07 Thread Tobias Rapp
Hi! I am using a tWSocket derived class inside a DLL. One of the users of the DLL had problems with using the class and it turned out that I had forgotten to set MultiThreaded to TRUE (as the user of the DLL has created the class in a separate thread). My question now is: Is it safe to always

Re: [twsocket] UDP Newbie...

2008-04-01 Thread Tobias Rapp
. Regards, Tobias @@VON Tobias Rapp t.rapp~~noa-audio.com @@ -- 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

Re: [twsocket] THttpCli: default webpage name

2008-05-07 Thread Tobias Rapp
DZ-Jay wrote: [EMAIL PROTECTED] wrote: If THttpCli is used to get a webpage with no document name specified, only directory (www.codegear.com/products) - is it possible to find out the default document name? Whether it be index.html or main.html or just some custom name specified on the

Re: [twsocket] HTTP...

2008-05-16 Thread Tobias Rapp
Hi! DZ-Jay wrote: A way to create a multi-part response is to encapsulate it as a MIME 822 message. Here's some basic information on this: http://www.motobit.com/tips/detpg_multiple-files-one-request/ I stumbled over the following lines on that page: | The situation is even worse if

Re: [twsocket] FTP and SSH

2008-06-05 Thread Tobias Rapp
Arno Garrels wrote: SSH (Secure Shell) is available on nix platforms. Well, it is typically used on Unix-like platforms but there is software available for Windows most notably the popular Putty and WinSCP tools. Due to the lack of SSL SSH has been used in the past to tunnel unsecure FTP on

Re: [twsocket] FTP and SSH

2008-06-05 Thread Tobias Rapp
Hi! Does the ICS FTP Client support SSH ? No, SSH is not supported by ICS. I don't know of any SSH implementation based on ICS (or any other Delphi library) so most likely you will have to implement it on your own. We want to use ICS ftp client in a secure mode. And the secure mode must be

[twsocket] Socket throughput optimizations

2008-06-10 Thread Tobias Rapp
Hi! I'd like to know if anybody of you has some suggestions about how to tune a tWSocket-based application for data throughput. Do you change some socket buffer sizes? Like in WSocket_setsockopt(FHSocket, SOL_SOCKET, SO_SNDBUF, ...); WSocket_setsockopt(FHSocket, SOL_SOCKET, SO_RCVBUF, ...);

Re: [twsocket] Socket throughput optimizations

2008-06-10 Thread Tobias Rapp
Francois Piette wrote: Which protocol ? Well, I'm basically using TCP. My client inherits from tWSocket and uses it's own XML-based protocol to deliver data blocks of around 256kB to the server (which is also a self-written Delphi ICS application). When connecting to the server app over a

Re: [twsocket] Socket throughput optimizations

2008-06-11 Thread Tobias Rapp
Hello Francois, thanks for your long and descriptive reply. Using the same client or server, at the same time in the day, are you able to check for network thruput using other tools ? [...] Yes, I've tried that and got 12MB/s for standard Windows file copy (CIFS), 4MB/s for FTP file copy

Re: [twsocket] Socket throughput optimizations

2008-06-23 Thread Tobias Rapp
Olivier Sannier wrote: Here are a few ideas to get high performances: 4) Enlarge winsock buffers 5) Enlarge TWSocket send buffer (BufSize property) to mach actual network packet size. By default BufSize is the size of a standard ethernet packet. What values would you recommend for a

Re: [twsocket] FTP client supports Utf-8 in ICSv7 now

2008-09-19 Thread Tobias Rapp
Francois Piette wrote: Angus and I added UTF-8 support to the TFtpCli V7. I think Angus and Arno deserve a BIG thank from all of us for the huge work they've done supporting internationalisation in FTP component. Thanks guys ! Yes, it's great to hear that! Thanks for all the work that is

[twsocket] Advice on using tHttpServer with throttling and threads

2008-10-15 Thread Tobias Rapp
Hello, I am currently trying to implement a HTTP file streaming server using tHttpServer and I'd like to know if anybody has some advice regarding the use of threads. I know that it's basically possible to use tHttpServer without threads but I suppose that threads are needed in my case because

[twsocket] Fixed small bug in HttpSrv digest auth

2008-11-13 Thread Tobias Rapp
Hi! I have found a small bug in ICS V5 HttpSrv.pas within procedure tHttpConnection.Answer401: Header := FVersion + ' 401 Unauthorized' + #13#10 + 'WWW-Authenticate: ' + //'Digest realm=' + FAuthRealm +// original 'Digest realm=' + FAuthRealm

Re: [twsocket] THttpCli digest and basic authentication

2009-01-21 Thread Tobias Rapp
Maurizio Lotauro wrote: Sooner or later I must install (and use) a svn client :-) Any suggestion? When using Windows there is the great TortoiseSVN client (http://tortoisesvn.tigris.org/) that integrates into the Windows explorer. Have not found a better tool in the last years - and I really

Re: [twsocket] FileMD5 : Different Hash Result - same File ondifferent workstation

2009-06-24 Thread Tobias Rapp
ineic...@triple-m.ch wrote: I wrote this tool to check FileMD5 with ICS_V6, ICS_V7 and INDY_10. It display's the result in a memo with time measurement. E.g. a 44MB Mpeg File displays: Host: [WSBIERI] File: [D:\_BuProcVideoData\19052008noch eine aufzeichung395876456777894.mpg] MD5 ICS_V6

Re: [twsocket] Package Count / Wireshark

2009-09-10 Thread Tobias Rapp
Alper Albayrak wrote: Monitoring packages arrived, I see that one of the packages (505 byte) is divided into 3 packages. What i want to ask; is this the way tcp protocol transfers data over network, or package count is because of the method client uses to send data..? I once have also

Re: [twsocket] Serious bug in TWSocket(AVorbufferoverflow)Pleasehelp !

2009-11-02 Thread Tobias Rapp
I have found some similar code in function TCustomLineWSocket.DoRecv() from ICS-V5: === --- D:/DelphiComponents/Ics/Delphi/Vc32/WSocket.pas (revision 279) +++ D:/DelphiComponents/Ics/Delphi/Vc32/WSocket.pas (working copy) @@

Re: [twsocket] Serious bug in TWSocket(AVorbufferoverflow)Pleasehelp !

2009-11-02 Thread Tobias Rapp
Arno Garrels wrote: I don't think it is a bug in ICS-V5, since Buffer mostly was of no type (if memory serves well). This changed in ICS V6 where Buffer is of type TWSocketData which maps to Pointer in Win32. That's true. As a programmer coming from C language the typeless var Buffer thing

Re: [twsocket] ICS documentation

2010-03-02 Thread Tobias Rapp
Markus Humm wrote: What is so hard in documenting just a single property or work on those property overview pages which aren't complete yet? Copying the table of a already started property list to a not yet started one and modifying it so that the correct properties are listed is not hard. My

Re: [twsocket] [OT] EMB NDA Briefing

2010-07-21 Thread Tobias Rapp
Fastream Technologies wrote: Please let us know about their plans for 64-bit compiler support! https://forums.embarcadero.com/message.jspa?messageID=257995#257995 The plan seems to be clear, only the expected time frame is secret (needs an NDA). Regards, Tobias -- To unsubscribe or change

Re: [twsocket] New DLL hijacking vulnerability KB 2269637

2010-09-09 Thread Tobias Rapp
Arno Garrels wrote: The DLL names are globally writable typed constants, set their values before the OpenSSL libraries are loaded. Is there any advantage to use writable typed constants like const GSSLEAY_DLL_Name : String = 'SSLEAY32.DLL'; instead of var GSSLEAY_DLL_Name : String =

[twsocket] Installing ICS within C++ Builder 2006

2010-11-11 Thread Tobias Rapp
Hello, I have ICS package installed within the Delphi personality of BDS2006 but now I want to use it within the C++ Builder personality. After adding some missing *.pas files to IcsBcb100.bdsproj BDS complains: Remove WSocketE, WSockBuf, WSocket, WSocketS, ... were found in required package

Re: [twsocket] Installing ICS within C++ Builder 2006

2010-11-12 Thread Tobias Rapp
Hello Arno, You should no longer use ICSv6 but ICSv7 which installs fine with BCB. I know that the latest version is preffered but I need to use a library built on top of ICS with BCB so I need the old version (V5 in fact). In order to install ICS into both personalities you just have to

Re: [twsocket] Installing ICS within C++ Builder 2006

2010-11-12 Thread Tobias Rapp
Hello again, In order to install ICS into both personalities you just have to change the Delphi package options to: Linking | Linker output | Generate all C++ Builder files (including package libs) and rebuild all. Thanks for the hint. I tried it and it worked in a way that now the

Re: [twsocket] Is the SVN server online?

2010-11-22 Thread Tobias Rapp
Hello SZ, With the Tortoise CVS client when I click checkout and paste the URL :ext:i...@svn.overbyte.be/ics/branches/icsipv6 it says: end of file from server I guess you confused TortoiseCVS - TortoiseSVN. The GUI client for Subversion (SVN) can be downloaded at

[twsocket] Tool for analyzing network throughput issues

2011-01-07 Thread Tobias Rapp
Hello, I am experiencing throughput problems with my ICS-based network transfer application and want to ask if anybody knows a tool to debug those kind of issues (visualize maybe the current network latency, TCP send/receive buffer fill size, etc.). Regards, Tobias -- To unsubscribe or change

Re: [twsocket] Tool for analyzing network throughput issues

2011-01-10 Thread Tobias Rapp
Arno Garrels wrote: If I were in your shoes I would at first search my application for bottlenecks, lengthy blocking tasks, too small data chunks sent/received etc. When I search for issues I usually try to divide the area where the problem possibly exists into two parts and check both

Re: [twsocket] TWSocketServer: client not removed from server list on disconnect

2011-02-01 Thread Tobias Rapp
Hello Anton! destructor TSrvClient.Destroy; begin FreeAndNil(FList); // *** set breakpoint here to ensure client is destroyed *** end; This should be: destructor TSrvClient.Destroy; begin FreeAndNil(FList); inherited; // -- added call to ancestor end; Regards, Tobias -- To

Re: [twsocket] Why ICS prefers non-blocking sockets?

2011-02-22 Thread Tobias Rapp
It is all much better explained here why blocking is better: http://www.ararat.cz/synapse/doku.php/about I would not say that blocking is better. Programming with synchronous functions needs less callbacks and thus gives more compact code at the cost of performance. If this is OK depends on the

[twsocket] [OT] Re: SSL broken?

2011-03-25 Thread Tobias Rapp
I guess the centralized trust model of SSL has been a known problem for ages. Don't understand why they try to make so much noise about it now. IMO the problem of the alternative model (web of trust) is that it lacks the cash cow properties and thus is less appealing to certificate authorities.

Re: [twsocket] [OT] 64-bit Delphi preview

2011-04-06 Thread Tobias Rapp
Angus Robertson wrote: Maybe it's time to check all our projects for 64-bit compatibility? :) Only if your ICS project needs to access more than 2 gigs of memory (or is it 4), or is a DLL called by other 64-bit applications. When working with Windows messages I often use a pattern like

Re: [twsocket] [OT] 64-bit Delphi preview

2011-04-06 Thread Tobias Rapp
Arno Garrels wrote: No, WPARAM and LPARAM are 64-bit in WIN64 so just cast the pointer to WParam in your sample. PostMessage(Handle, WM_MY_MSG, WParam(Msg), 0); Oh, that's fine! NativeInt and NativeUInt are Delphi's integer types that always have the size of a Pointer. Integer will _not

Re: [twsocket] ICS and Delphi XE2

2011-08-03 Thread Tobias Rapp
Angus Robertson - Magenta Systems Ltd wrote: ICS does not currently support FireMonkey or Mac OS-X, it needs a lot of work since Linux is not event driven like Windows, and makes use of threads to prevent blocking. ICS did support Kylix for Linux several years ago, so some work has been done.

Re: [twsocket] ICS and Delphi XE2

2011-08-03 Thread Tobias Rapp
Angus Robertson - Magenta Systems Ltd wrote: There may be such an event system in FireMonkey, don't actually know. But supporting ICS with FireMonkey and Mac OS-X is not simply a case of a few bug fixes and conditional compilation changes which is effectively all that is needed for 64-bit

[twsocket] [PATCH] THttpSrv: add support for returning partial streams

2012-02-02 Thread Tobias Rapp
Hi! I have added a new function AnswerStreamPart in component THttpConnection to allow answering partial retrieve requests using any tStream descendant (see attached patch file). It would be nice if the patch could be considered for inclusion in the upstream ICS sources and I am open for

Re: [twsocket] [PATCH] THttpSrv: add support for returning partial streams

2012-02-02 Thread Tobias Rapp
Index: OverbyteIcsHttpSrv.pas === --- OverbyteIcsHttpSrv.pas (revision 887) +++ OverbyteIcsHttpSrv.pas (working copy) @@ -807,6 +807,9 @@ const Status : String;

[twsocket] HTTP server component with WebDav support

2012-02-03 Thread Tobias Rapp
Hi! I would like to extend my existing ICS-based HTTP server to allow upload and removal of files on the server. From reading the HTTP specs at [1] it seems that the natural commands for these actions would be PUT [2] and DELETE [3]. Unfortunately the THttpServer/THttpConnection components do

Re: [twsocket] [PATCH] THttpSrv: add support for returning partialstreams

2012-02-05 Thread Tobias Rapp
Arno Garrels wrote (in a response to RTT): Problem is that AnswerStreamAcceptRange can only be used for OK-responses. Yes, that is right and like you said I only use it for some of the responses where it makes sense for the client (to allow seeking within streamed audio files). I just

[twsocket] Support for HEAD in HTTP server component

2012-02-07 Thread Tobias Rapp
Hi, I am currently debugging some problems in my application using the THttpServer/THttpConnection components regarding the support for HEAD requests. As far as I understand the specs no response body should be returned for HEAD but it seems that THttpConnection does send response bodies in

Re: [twsocket] Support for HEAD in HTTP server component

2012-02-07 Thread Tobias Rapp
I wrote: [...] As far as I understand the specs no response body should be returned for HEAD but it seems that THttpConnection does send response bodies in procedure ProcessPost() in case of 400/404/etc. answers. ^---^ I wanted to say ProcessHead() here. Regards,

Re: [twsocket] Support for HEAD in HTTP server component

2012-02-10 Thread Tobias Rapp
Arno Garrels wrote: Feb 07, 2012 V7.44 Arno - The HEAD method *MUST NOT* return a message-body in the response. Do not skip compression on HEAD requests, we need to send the correct size. Method SendDocument simplified and added two overloads. AnswerStreamAcceptRange got an overload too.

[twsocket] [PATCH] THttpCli: add support for DELETE requests

2012-02-10 Thread Tobias Rapp
Hi, in order to support HTTP DELETE requests [1] in the THttpCli component I have made some small additions (see patch below). It would be great if you could consider including the patch in the upstream version of ICS. Note: I first considered adding the new request type by overloading the

Re: [twsocket] [PATCH] THttpCli: add support for DELETE requests

2012-02-13 Thread Tobias Rapp
Arno Garrels wrote: Thanks, however the method name conflicts with System.Delete. The new method should be IMO renamed to either Del, Dele or Delete_. TList, TStrings, TDataSet and more objects have a Delete method so I see no real problem here. However if this is the only thing preventing my

Re: [twsocket] [PATCH] THttpCli: add support for DELETE requests

2012-02-17 Thread Tobias Rapp
OK, just checked in your patch rev. #896 Thanks! Regards, Tobias -- 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

[twsocket] Using Unicode in HdrTo of TSmtpCli component

2012-03-09 Thread Tobias Rapp
Hi! I am currently using the TSmtpCli component to send email notifications to users. I want to change the HdrTo property value to additionaly contain the user name instead of just the plain email address. As my user name is retrieved from a database as WideString I wonder how I handle non-ASCII

Re: [twsocket] Using Unicode in HdrTo of TSmtpCli component

2012-03-09 Thread Tobias Rapp
Thanks Arno for the help. Would it also work if I would set Allow8BitChars to TRUE, Charset to UTF-8 and manually encode all string properties like HdrTo, HdrSubject and MailMessage.Text using Utf8Encode()? My assumption was that the header lines should not contain non-ASCII characters, but

Re: [twsocket] Using Unicode in HdrTo of TSmtpCli component

2012-03-09 Thread Tobias Rapp
Angus Robertson - Magenta Systems Ltd wrote: The headers may have different charset to the content, indeed they are usually ASCII. Never use the body charset to decode the headers. OK, I see. I guess I have all necessary parts together now. Thanks! Regards, Tobias -- To unsubscribe or change

[twsocket] [PATCH] HttpSrv: Fix in THttpRangeStream for incomplete reads

2012-08-21 Thread Tobias Rapp
Hi, when using the HTTP server component with some custom TStream descendant together with partial GET requests I noticed that the Read method of THttpRangeStream incorrectly handles the situation where Read returns less bytes that requested. It switches to the next stream member in the list

Re: [twsocket] [PATCH] HttpSrv: Fix in THttpRangeStream for incomplete reads

2012-08-21 Thread Tobias Rapp
Angus Robertson - Magenta Systems Ltd wrote: Thanks, the V8 repository will be updated this morning. Nice. Any chance the patch could also be applied to V7 (trunk)? Regards, Tobias -- To unsubscribe or change your settings for TWSocket mailing list please goto

Re: [twsocket] [PATCH] HttpSrv: Fix in THttpRangeStream for incomplete reads

2012-08-21 Thread Tobias Rapp
Angus Robertson - Magenta Systems Ltd wrote: OK, both V7 and V8 are updated with your fix, and the 'nightly' zips updated early. I also added another web server fix that previously was only in V8. Great. Thanks, Tobias -- To unsubscribe or change your settings for TWSocket mailing list