看到别人用tclientsocket编的客户端程序,有个地方百思不得其解。procedure TfrmClientMain.ClientSocketError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
  StatusBar1.Panels[0].Text := '与服务器端的连接发生错误';
    ErrorCode := 0;
end;1、该过程的触发条件是什么?是返回错误句柄么?
2、括号内定义了那么多的参数怎么没用到呢?还有一个过程,
procedure TfrmClientMain.ClientSocketRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Memo1.Lines.Add(Socket.ReceiveText);
end;
这个ClientSocketRead是用户自定义的一个过程,它会在什么情况下触发呢?感觉过程中没有提到触发条件啊?
我还是个菜鸟,可能有些delphi的精髓的东西还没体会到,所以您的答案对我很重要,谢谢咯~~

解决方案 »

  1.   

    这两个问题似乎都可以在Delphi的帮助和VCL的源代码里找到答案。
    其实写程序的乐趣就在于通过自己的努力去发现和创造,LZ不要把打好的机会就这么轻易的放弃了呀!
      

  2.   

    它们应该都是clientsocket的事件响应函数,前者在异常时被调用,后者是在有数据到达时被调用
      

  3.   

    你看看那个SOCKET单元里面有封装的,判断若过程指针内存不为空则触发
      

  4.   

    或者我将我的问题简化一点,看这行程序
    procedure TfrmClientMain.ClientSocketRead(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
      Memo1.Lines.Add(Socket.ReceiveText);
    end;当事件有客户端发送数据时,服务器会做出响应,那为什么做出响应的是这个过程呢?我把该过程的名字改为clntscktread,它也会做出响应么?有没有大侠知道答案呢?