是无法发出还是无法收到,如果是服务器端无法收到的话跟你服务器端servertype设置有关
如果设置的是:stNonBlocking,在onClientRead事件中通过socket.ReceiveText能够收到;如果设置的是stThreadBlocking,而且没有在onGetThread设置线程,由于TServerClientThread中ReActivate过程中一段错误代码(呵呵,我这么认为)FClientSocket.OnSocketEvent := HandleEvent;
FClientSocket.OnErrorEvent := HandleError;导致TServerSocket的onClientRead事件无法触发。解决方法有两个:1、将上面的两行代码改为:FServerSocket.OnSocketEvent := HandleEvent;
FServerSocket.OnErrorEvent := HandleError;就可以触发TServerSocket的onClientRead事件;2、在TServerSocket的onThreadStart事件中设置Thread.ServerSocket.OnSocketEvent的事件处理程序,在自己的事件处理中也可收到数据;
另外在onGetThread中设置自己的线程也可以解决问题