Re: [twsocket] Newbie question : Working with Long strings
Hello Clément, I searched some examples, but most of them use LineMode and LineLimit. I'm afraid that's not an option. Wy is that not an option ? What is the problem with it ? Just terminate your data with a charcter that cannot be in the data itself and your whole problem is solved. // here I expect Len = BufSize. If it's equal than may be there's more to // read. How can I be sure? Does ICS have some internal flag ? You cannot. ICS also cannot have a flag. Data can be somwhere on the way or send may send some more data. winsock cannot know what sender wants. if Len = 0 then begin // Something happened!! What? Winsock does not like to let us receive data, so exit the event. if Len=-1 then begin // Seems to be the end of a long string. Once len = -1, can No it is not a long string. -1 is an error. just exit the event. // Now the problem: // I must cache the received zBuf FRcvBuf := FRcvBuf+ string(zBuf); // If we read all the data, we display it If you have a problem with linemode, the send first the length of the data you want to send. then receiver has length and can concatenate all data packets until it is same as the length. --- 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] newb using TWSocket for the first time
Hello David, On a certain XML packet/event I'm getting duplicates (x3). It may well be that they are sending the same packet multiple times but I wondered if it's anything I am doing that could cause this? Something that can cause this (and other strange behaviour) is if you call direct or indirect the message pump in the OnDataAvailable (or any other) event. Note that showing a modal form or a menu and so is also pumping messages. Also to be sure, you can download SocketSpy (on user made page) and 'hang' it between your server and client. Then you can see exact what is sent. If it appears there also 3 times then the server is really sending it 3 times. --- 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] newb using TWSocket for the first time
Thanks Wilfried The app uses a main form with some buttons for the user to log in and send packets, but there is no additional message pumping going on. It only happens on one particular packet type they send so I'm hoping it's them On 26/09/2007, Wilfried Mestdagh [EMAIL PROTECTED] wrote: Hello David, On a certain XML packet/event I'm getting duplicates (x3). It may well be that they are sending the same packet multiple times but I wondered if it's anything I am doing that could cause this? Something that can cause this (and other strange behaviour) is if you call direct or indirect the message pump in the OnDataAvailable (or any other) event. Note that showing a modal form or a menu and so is also pumping messages. Also to be sure, you can download SocketSpy (on user made page) and 'hang' it between your server and client. Then you can see exact what is sent. If it appears there also 3 times then the server is really sending it 3 times. --- 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 -- 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] newb using TWSocket for the first time
Hello David, Eventually you can check with SocketSpy what exacly is sent. --- 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] 100% CPU usage if data is not processed immediately
Hi, I'm using TWSocketS with a custom TWSocket derived class called TMyClientSocket to implement a TCP/IP server. I have overridden TriggerDataAvailable in TMyClientSocket in such a way: function TROAsyncSuperTcpServerSocketClient.TriggerDataAvailable( Error: Word): Boolean; begin inherited TriggerDataAvailable(Error); NotifyDataAvailable; // Return True to indicate that we do not want the data to be dropped. Result := True; end; The NotifyDataAvailable sets a flag in an object associated to the client socket that will then read the available bytes. But it will not do so immediately, clearly after the TriggerDataAvailable has returned. This does not prove to be a problem because all data is queued up until it is actually read, up to a certain limit that I doubt I'll ever reach. Usually, this takes a few milliseconds but it happens sometimes that it takes up to 10 seconds. Ok, this is relatively rare for production use, but because I'm doing tests on the server, I'm seeing this quite often. And this is where I have a problem, because while the data is waiting to be read, the processor usage is 100% (or 1CPU on multi cpu systems). I traced it and that's because TCustomWSocket.ASyncReceive does a loop while the bMore variable is True, without ever giving the operating system to do anything. Hence the 100%CPU usage. To me, this could be avoided by adding the following two lines at the end of the loop: if bMore then Sleep(1); { to avoid 100% CPU } At line 4231, right after the end of the try except block. To me this has little to no effect as the sleep is only done when bMore is True. What do you think of this proposal? Any comments are welcome. Regards Olivier Sannier -- 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] 100% CPU usage if data is not processed immediately
Hello Olivier, The NotifyDataAvailable sets a flag in an object associated to the client socket that will then read the available bytes. But it will not do so immediately That's the problem. You have to read all available data In the OnDataAvailable event. If you do not then OnDataAvailable will fire again in a loop where you must receive the rest of the data, or if you set wsoNoReceiveLoop in ComponentOptions property then it is fired using a custom message handler. So the Sleep is not needed. Also it is a bad idea because if there is high speed data received and more than will be received in the event it will delay the reception of data during a time slice (10..20 millisec depending on the OS) and will grow winsock internal receive buffer, because during the Sleep the message pump is not working. --- 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] Newbie question : Working with Long strings
Hello Wilfried, Thanks for helping me! Hello Clément, I searched some examples, but most of them use LineMode and LineLimit. I'm afraid that's not an option. Wy is that not an option ? What is the problem with it ? Just terminate your data with a charcter that cannot be in the data itself and your whole problem is solved. Ok. But can I place a LineLimit over 200kbytes? or better yet, unlimited? (those help files can get very big may be over 1Mb) Can I set the LineLimit at runtime at any time? Where/when should be the correct place to update LineLimit? For example, once I check the data length is larger then the limit, then I add a few more bytes, save this new limit in a .ini for example. Best regards, Clément -- 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] 100% CPU usage if data is not processed immediately
Wilfried Mestdagh wrote: Hello Olivier, The NotifyDataAvailable sets a flag in an object associated to the client socket that will then read the available bytes. But it will not do so immediately That's the problem. You have to read all available data In the OnDataAvailable event. If you do not then OnDataAvailable will fire again in a loop where you must receive the rest of the data, or if you set wsoNoReceiveLoop in ComponentOptions property then it is fired using a custom message handler. That's what I thought, but then again, this means I need to have a buffer of my own, and I have no idea which size it should be. 1k, 10k, more? So the Sleep is not needed. Also it is a bad idea because if there is high speed data received and more than will be received in the event it will delay the reception of data during a time slice (10..20 millisec depending on the OS) and will grow winsock internal receive buffer, because during the Sleep the message pump is not working. I know that, but with 100%CPU usage, the handling of messages is stopped anyway as well as no other thread will be able to take control. Well, maybe on a multi core, but not on single core machines. -- 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] 100% CPU usage if data is not processed immediately
Olivier Sannier wrote: if bMore then Sleep(1); { to avoid 100% CPU } At line 4231, right after the end of the try except block. To me this has little to no effect as the sleep is only done when bMore is True. What do you think of this proposal? That would slow down performance when you use the component as designed. When the application is idle it should read incomming data immediately. There is no reason to wait until a certain amount of data is pending to be read from winsock. -- Arno Garrels [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html Olivier Sannier wrote: Hi, I'm using TWSocketS with a custom TWSocket derived class called TMyClientSocket to implement a TCP/IP server. I have overridden TriggerDataAvailable in TMyClientSocket in such a way: function TROAsyncSuperTcpServerSocketClient.TriggerDataAvailable( Error: Word): Boolean; begin inherited TriggerDataAvailable(Error); NotifyDataAvailable; // Return True to indicate that we do not want the data to be dropped. Result := True; end; The NotifyDataAvailable sets a flag in an object associated to the client socket that will then read the available bytes. But it will not do so immediately, clearly after the TriggerDataAvailable has returned. This does not prove to be a problem because all data is queued up until it is actually read, up to a certain limit that I doubt I'll ever reach. Usually, this takes a few milliseconds but it happens sometimes that it takes up to 10 seconds. Ok, this is relatively rare for production use, but because I'm doing tests on the server, I'm seeing this quite often. And this is where I have a problem, because while the data is waiting to be read, the processor usage is 100% (or 1CPU on multi cpu systems). I traced it and that's because TCustomWSocket.ASyncReceive does a loop while the bMore variable is True, without ever giving the operating system to do anything. Hence the 100%CPU usage. To me, this could be avoided by adding the following two lines at the end of the loop: if bMore then Sleep(1); { to avoid 100% CPU } At line 4231, right after the end of the try except block. To me this has little to no effect as the sleep is only done when bMore is True. What do you think of this proposal? Any comments are welcome. Regards Olivier Sannier -- 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] Newbie question : Working with Long strings
Hello Clément, Ok. But can I place a LineLimit over 200kbytes? or better yet, unlimited? (those help files can get very big may be over 1Mb) Yes. Since you connect to a known server you dont have to be afraid of a DOS attac. So set LineLimit := $7FFF; which is the highest possible value. TWSocket will then buffer the data for you until the terminating character is received and then OnDataAvailable will fire where you can receive the whole data at once. Can I set the LineLimit at runtime at any time? You can set it at any time, but I think (see above) it is not needed for you to change it the whole time. --- 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] 100% CPU usage if data is not processed immediately
Hello Olivier, That's what I thought, but then again, this means I need to have a buffer of my own, and I have no idea which size it should be. 1k, 10k, more? Yes. TWSocket is designed to buffer incoming data for you if you use LineMode. That is when you have your data terminated with a certain character (or a string of characters). If you dont use LineMode then yes you have to buffer on your own. I know that, but with 100%CPU usage, the handling of messages is stopped anyway as well as no other thread will be able to take control. Well, maybe on a multi core, but not on single core machines. Agree, but there is also a componentOptions property wsoNoReceiveLoop which will fire OnDataAvailable again using a custom message handler. In that case message pump stay working. --- Rgds, Wilfried [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html http://www.mestdagh.biz Wednesday, September 26, 2007, 15:38, Olivier Sannier wrote: Wilfried Mestdagh wrote: Hello Olivier, The NotifyDataAvailable sets a flag in an object associated to the client socket that will then read the available bytes. But it will not do so immediately That's the problem. You have to read all available data In the OnDataAvailable event. If you do not then OnDataAvailable will fire again in a loop where you must receive the rest of the data, or if you set wsoNoReceiveLoop in ComponentOptions property then it is fired using a custom message handler. That's what I thought, but then again, this means I need to have a buffer of my own, and I have no idea which size it should be. 1k, 10k, more? So the Sleep is not needed. Also it is a bad idea because if there is high speed data received and more than will be received in the event it will delay the reception of data during a time slice (10..20 millisec depending on the OS) and will grow winsock internal receive buffer, because during the Sleep the message pump is not working. I know that, but with 100%CPU usage, the handling of messages is stopped anyway as well as no other thread will be able to take control. Well, maybe on a multi core, but not on single core machines. -- 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] 100% CPU usage if data is not processed immediately
Olivier Sannier wrote: That's what I thought, but then again, this means I need to have a buffer of my own, and I have no idea which size it should be. 1k, 10k, more? You have to use some buffer, its size depends on your protocol. I.e. the client could send the data length as the first byte. Or write received data to a stream if you like. Source code of the high level ICS components demonstrate how to do that in detail. -- Arno Garrels [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html -- 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] newb using TWSocket for the first time
I now suspect that the data is only being sent once. When I receive a certain packet I pop up a messagebox asking the user a question and I suspect it is this that is causing the packet to be repeated since it is ultimately being displayed by a call from the OnDataAvailable event. How may this be prevented? I cannot disable all messge processing in my app whilst it's in the OnDataAvailable event. On 26/09/2007, Wilfried Mestdagh [EMAIL PROTECTED] wrote: Hello David, Eventually you can check with SocketSpy what exacly is sent. --- 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 -- 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] TWSocket multi-client example
Hello: I need to write a TService application that will receive (potentially) multiple client TCP connections concurrently, and perform some simple stateful transactions with them. For example: 1. Client-A connects to the server 2. Server responds with banner 3. Client-A sends data 4. Client-A sends end-of-data marker 5. Server responds with ERR or OK code 6. Server responds with receipt ID 7. Client-A closes connection As you can see, its sort of like an SMPT server, but much, much simpler. Does TWSocket support multiple concurrent connections? If not, do I need to implement this by spawning a new thread for each client, or is there a more efficient way? Is there an example of such application? From what I found in the ICS demo applications, some use multiple forms for each client. Any guidance or samples will be very much appreciated. Thank you, -dZ. -- 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] newb using TWSocket for the first time
Hello David, Yes, a modal form is pumping messages. If it is really nececary to popup a form if you have received a certain packet, you have to create / show the form outside the OnDataAvailable event. To do it outside just post a message to a custom message handler. Your custom message handler will execute a while later (so outside the event) and you can safely display the modal form. If you need example, then just ask of course :) --- Rgds, Wilfried [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html http://www.mestdagh.biz Wednesday, September 26, 2007, 16:19, David Perkins wrote: I now suspect that the data is only being sent once. When I receive a certain packet I pop up a messagebox asking the user a question and I suspect it is this that is causing the packet to be repeated since it is ultimately being displayed by a call from the OnDataAvailable event. How may this be prevented? I cannot disable all messge processing in my app whilst it's in the OnDataAvailable event. On 26/09/2007, Wilfried Mestdagh [EMAIL PROTECTED] wrote: Hello David, Eventually you can check with SocketSpy what exacly is sent. --- 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 -- 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] TWSocket multi-client example
I need to write a TService application that will receive (potentially) multiple client TCP connections concurrently, and perform some simple stateful transactions with them. For example: 1. Client-A connects to the server 2. Server responds with banner 3. Client-A sends data 4. Client-A sends end-of-data marker 5. Server responds with ERR or OK code 6. Server responds with receipt ID 7. Client-A closes connection As you can see, its sort of like an SMPT server, but much, much simpler. Does TWSocket support multiple concurrent connections? Yes, TWSocketServer support an unlimited concurrent connections (well they are limited by hardware and OS resources). If not, do I need to implement this by spawning a new thread for each client, or is there a more efficient way? You don't need multithreading, but you can use it if processing require lengthy operation, or if you want to take advantage of multi-core CPU. I suggest you clearly separate communication (TWSocketServer) and processing, and use a single thread for communication and one thread per client for processing. There is also a multithreaded TWSocketServer available. It was designed by Arno. Is there an example of such application? Yes, there are several multiclient and multithread samples. The more recent, the best they are. Look at both V5 and V6 since all V5 sample have not yet been converted to V6). Contribute to the SSL Effort. Visit http://www.overbyte.be/eng/ssl.html -- [EMAIL PROTECTED] Author of ICS (Internet Component Suite, freeware) Author of MidWare (Multi-tier framework, freeware) 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] newb using TWSocket for the first time
Thanks Wilfried/Francois At the moment this is just for a simple test app that talks to a third-party server. My comms class allows the GUI (or any class for that matter) to register an event to be called when a certain data packet is received via the socket. It just so happens in this case that I am popping up a messagebox. It seems to me that I either need to postmessage to an intermediate layer which can then call the registered events letting them know that something of interest has happened, or, pop them into a queue and have something else process them outside of the OnDataAvailable event. By custom message handler, do you mean use a message map and define a new message type something like WM_USER+100? Does this happen only if messages are pumped whilst in the OnDataAvailable event? Would another thread calling processmessages give the same problems? Thanks. On 26/09/2007, Wilfried Mestdagh [EMAIL PROTECTED] wrote: Hello David, Yes, a modal form is pumping messages. If it is really nececary to popup a form if you have received a certain packet, you have to create / show the form outside the OnDataAvailable event. To do it outside just post a message to a custom message handler. Your custom message handler will execute a while later (so outside the event) and you can safely display the modal form. If you need example, then just ask of course :) --- Rgds, Wilfried [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html http://www.mestdagh.biz Wednesday, September 26, 2007, 16:19, David Perkins wrote: I now suspect that the data is only being sent once. When I receive a certain packet I pop up a messagebox asking the user a question and I suspect it is this that is causing the packet to be repeated since it is ultimately being displayed by a call from the OnDataAvailable event. How may this be prevented? I cannot disable all messge processing in my app whilst it's in the OnDataAvailable event. On 26/09/2007, Wilfried Mestdagh [EMAIL PROTECTED] wrote: Hello David, Eventually you can check with SocketSpy what exacly is sent. --- 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 -- 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] newb using TWSocket for the first time
David Perkins wrote: By custom message handler, do you mean use a message map and define a new message type something like WM_USER+100? Yes, you can also post the custom message to the hidden window that all ICS components own and override component's WndProc() to handle the new message, note that in ICS-V6 additional messages have to registered and unregistered by overriding AllocateMsgHandlers() and FreeMsgHandlers(). Does this happen only if messages are pumped whilst in the OnDataAvailable event? Reentrance-problems may occur in any other event as well when messages are pumped in the event handler. Would another thread calling processmessages give the same problems? No, ProcessMessages retrieves messages from the thread message queue and dispatch them to the default window procedure. -- Arno Garrels Thanks. On 26/09/2007, Wilfried Mestdagh [EMAIL PROTECTED] wrote: Hello David, Yes, a modal form is pumping messages. If it is really nececary to popup a form if you have received a certain packet, you have to create / show the form outside the OnDataAvailable event. To do it outside just post a message to a custom message handler. Your custom message handler will execute a while later (so outside the event) and you can safely display the modal form. If you need example, then just ask of course :) --- Rgds, Wilfried [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html http://www.mestdagh.biz Wednesday, September 26, 2007, 16:19, David Perkins wrote: I now suspect that the data is only being sent once. When I receive a certain packet I pop up a messagebox asking the user a question and I suspect it is this that is causing the packet to be repeated since it is ultimately being displayed by a call from the OnDataAvailable event. How may this be prevented? I cannot disable all messge processing in my app whilst it's in the OnDataAvailable event. On 26/09/2007, Wilfried Mestdagh [EMAIL PROTECTED] wrote: Hello David, Eventually you can check with SocketSpy what exacly is sent. --- 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 -- 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
[twsocket] Wiki
Hello, maybe some of the people around here have forgotten that a Wiki for ICS exists http://wiki.overbyte.be/wiki/index.php/Main_Page. I think it always seeks for more contributors, so just get yourself a login and start to add or revise content... 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] Wiki
Hi, I agree! I see it as paying a little for the components by documenting when I am doing some development with ICS-components. It's so easy to add a couple of lines of code or some notes that are missing. Regards, Fredrik. -Ursprungligt meddelande- Från: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] För Markus Humm Skickat: den 26 september 2007 19:40 Till: ICS support mailing Ämne: [twsocket] Wiki Hello, maybe some of the people around here have forgotten that a Wiki for ICS exists http://wiki.overbyte.be/wiki/index.php/Main_Page. I think it always seeks for more contributors, so just get yourself a login and start to add or revise content... 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 -- 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] Wiki
maybe some of the people around here have forgotten that a Wiki for ICS exists http://wiki.overbyte.be/wiki/index.php/Main_Page. I agree! I see it as paying a little for the components by documenting when I am doing some development with ICS-components. It's so easy to add a couple of lines of code or some notes that are missing. Thank you very much for your help. I think it always seeks for more contributors, so just get yourself a login and start to add or revise content... Right ! Anyone is welcome to contribute. Send me a little email and I'll grant write permission. -- [EMAIL PROTECTED] The author of the freeware multi-tier middleware MidWare The author of the freeware Internet Component Suite (ICS) http://www.overbyte.be - Original Message - From: Fredrik Larsson [EMAIL PROTECTED] To: 'ICS support mailing' twsocket@elists.org Sent: Wednesday, September 26, 2007 7:53 PM Subject: Re: [twsocket] Wiki Hi, I agree! I see it as paying a little for the components by documenting when I am doing some development with ICS-components. It's so easy to add a couple of lines of code or some notes that are missing. Regards, Fredrik. -Ursprungligt meddelande- Från: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] För Markus Humm Skickat: den 26 september 2007 19:40 Till: ICS support mailing Ämne: [twsocket] Wiki Hello, maybe some of the people around here have forgotten that a Wiki for ICS exists http://wiki.overbyte.be/wiki/index.php/Main_Page. I think it always seeks for more contributors, so just get yourself a login and start to add or revise content... 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 -- 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