[twsocket] Delphi 2007 is out !
Delphi 2007 for Win32 is out. You can get it quickly if you buy on-line. Physical boxes will be available shortly according to CodeGear. Delphi 2007 for Win32 is already available in english, french, german and japanese. The latest ICS MidWare are compatibles with Delphi 2007. Actually Delphi 2007 is a non-breaking release. It means you can use BDS2006 source code, projects, dcu and bpl ! Regarding ICS MidWare, you simply open the BDS2006 packages, compile and install. Add VC32 directory to your library path. Then open the BDS2006 project group and recompile all sample applications. Regarding your own applications, if you use BDS2006, then you probably can just recompile everything. If you use third party components, they should be compatible, even if you don't have the source code, you can install BDS2006 bpl's into Delphi 2007. If you use older Delphi versions, you'll be able to recompile probably with no changes except if you have conditional compilation checking for version number. D2007 defines VER180 (same as BDS2006) and VER185 (only D2007.Win32 define it). Just search for VERxyz in the source code and change it. See IcsDefs.inc to find out the relation between VERxyz and Delphi versions. I strongly suggest you use IcsDefs into your own applications and use conditional compilation against DELPHIx_UP or COMPILEx_UP to trigger code generation. If you upgrade from pre-D7 version, and use variant data type, you'll have to add variants to your uses. I had the chance to work for CodeGear and as such I worked with Delphi 2007 for months. I can say that I'm very impressed by the product. CodeGear has done a huge work in making a fast an reliable product. There is insteresting enhancement in both the IDE, compiler, debugger and the VCL/RTL. I recommand upgrading to Delphi 2007 and also to buy support and maintenance to get the version updates (Currently Delphi 2007 is for win32 only. If you buy support and maintenance, you'll receive the other personnalities later (.NET, C++ and C#)). Have fun ! -- Contribute to the SSL Effort. Visit http://www.overbyte.be/eng/ssl.html -- [EMAIL PROTECTED] 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
[twsocket] Architectural question
Hello, I've to rebuild some piece of my application because it fails after relatively short amount of time and I don't find the fault. It uses TWSockets on two occasions: one for up to ten parallel communications via UDP and one time for sending the results of these communications and for receiving new requests via TCP to another PC. Now it's based on threads, each of these parallel lines has a thread which also does the timeout checking. I want to change that to simple objects which use a timer each for that to simplify it. Another thread currently watches the global receive buffer where each of these lines stores its received data in (after validating it). If received data is present it gets sent via TCP. The ned idea is that these timer based communication lines still write to a shared global buffer and there is still a thread reading it out which gets notified via PostMessage that there is something to do, to keep the thread of CPU-hogging. The problem now is, how to effectively lock the list so that always only one can access it while the others have to wait. Since these timer based objects do live in the main thread of the application and the other side reading the buffer is within a thread I assume that a critical section would do? Because after reading he has to delete what he read. The list is a TStringList by the way. Is this idea okay, or will I run into trouble with this? If yes, where and how to avoid it? The only downside I can currently find is, that without threads it won't scale very well on multicore CPUs. But right now this isn't a big problem I think. Greetings Markus -- 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
Re: [twsocket] Pause and Resume
Hello Jack, This seems OK. Indeed if you set wsoNoreceivedLoop in the OnDataAvailable handler it will hot have an effect when there is still data to receive and with this fix it is. Another possibility is that you set wsoNoreceivedLoop beforehand at creation time of TWSocket, then you dont need the change. --- Rgds, Wilfried [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html http://www.mestdagh.biz -- 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
Re: [twsocket] Architectural question
Hello Markus, TCriticalSection will protect your StringList among multiple threads, so that's ok. --- Rgds, Wilfried [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html http://www.mestdagh.biz -- 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
[twsocket] TIcsWndControl Error #14
Hello, What does this error mean? I get this when I open more than 8,000 sockets on my Core 2 Duo with 2GB RAM. Could it still be a RAM problem? Best Regards, SZ -- 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
Re: [twsocket] TIcsWndControl Error #14
Hello Fastream, If this is a windows error then it is ERROR_OUTOFMEMORY. --- Rgds, Wilfried [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html http://www.mestdagh.biz Sunday, March 18, 2007, 14:59, Fastream Technologies wrote: Hello, What does this error mean? I get this when I open more than 8,000 sockets on my Core 2 Duo with 2GB RAM. Could it still be a RAM problem? Best Regards, SZ -- 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
Re: [twsocket] TIcsWndControl Error #14
Alright, no need to worry then, since users are responsible for supplying enough memory for 1 clients. Plus I had the client stress tester on the same machine as well. That should have been why it went out of memory... BTW, nobody has commented on the code I sent? It is freeware and open source. Just two days of work... I have been able to get it to launch 20,000 keep-alive (HTTP) sockets! Also, Francois, I forgot to put my name in the code, could you add similar to other units of ICS? I think the code quality will prove to be a good example for newbies (but in C++ ;) ). Best Regards, SZ - Original Message - From: Wilfried Mestdagh [EMAIL PROTECTED] To: ICS support mailing twsocket@elists.org Sent: Sunday, March 18, 2007 4:20 PM Subject: Re: [twsocket] TIcsWndControl Error #14 Hello Fastream, If this is a windows error then it is ERROR_OUTOFMEMORY. --- Rgds, Wilfried [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html http://www.mestdagh.biz Sunday, March 18, 2007, 14:59, Fastream Technologies wrote: Hello, What does this error mean? I get this when I open more than 8,000 sockets on my Core 2 Duo with 2GB RAM. Could it still be a RAM problem? Best Regards, SZ -- 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
Re: [twsocket] Pause and Resume
Hello Wilfried and Francois, Would you consider patching my changes into ICS? -- Best regards, Jack Sunday, March 18, 2007, 5:17:12 AM, you wrote: Hello Jack, This seems OK. Indeed if you set wsoNoreceivedLoop in the OnDataAvailable handler it will hot have an effect when there is still data to receive and with this fix it is. Another possibility is that you set wsoNoreceivedLoop beforehand at creation time of TWSocket, then you dont need the change. -- 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