Hello Shamresh, > In my client I have set multithreaded to true (but not on the server).
No. Multithreaded is if you create the component in a thread other than the main thread. However I'm not sure this is related to your problem. > I have just moved over from indy, so non blocking events are giving me a bit > of a headache. You will get used to it very fast. After all, windows / delphi works also event driven. Some hints could be (maybe related to your problem): - dont call the message pump from withing an event. This include also a modal form (like ShowMessage), or (bad written) components that call it internally. If you call the message pump then the event can get re-entered at that moment. - write a state machine. Some event fire and depending on the state you can take the right action. - always have a working message pump. If you block the message pump the component will stop working until it pumps again. - dont write wait loops. it is considered as bad programming technique. You also dont write a wait loop waiting until a button is clicked :) --- Rgds, Wilfried [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html http://www.mestdagh.biz Saturday, April 8, 2006, 10:11, Shamresh Khan wrote: > Hi to all, > I have just moved over from indy, so non blocking events are giving me a bit > of a headache. > I have a number of files that are uploaded to my custom server. > I get an exception raided "Cannot change port if not closed" after several > files have been uploaded. > In my client I have set multithreaded to true (but not on the server). > My server is listening on port 21 and I am not clear why a port change > exception is raised. The stack dump on the server is : > TCustomWSocket.RaiseException('Cannot change Port if not closed') > TCustomWSocket.SetRemotePort('1849') > TFtpServer.CommandSTOR($E527EC,???,'testFile23.dat-FS=12','') > TFtpServer.ClientCommand(???,???,???) > TFtpCtrlSocket.TriggerCommand(???,???) > TFtpCtrlSocket.TriggerDataAvailable(???) > TCustomWSocket.ASyncReceive(0,[]) > TCustomWSocket.Do_FD_READ(???) > TCustomWSocket.WMASyncSelect((1025, 1456, 1, 66179, 1456, 0, 1, 0, 643, 1)) > TCustomWSocket.WndProc((1025, 1456, 1, 66179, 1456, 0, 1, 0, 643, 1)) > XSocketWindowProc(???,???,1456,1) > Any help would be appreciated. > Sham. -- 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
