我從網上下載一程序源碼,分為client.exe和server.exe兩部份,使用Tclientsocket和Tserversocket控件,我修改其中的某些源碼後在自己的機子上執行一切都正常,但發現只要修改client.exe的
procedure TClient.csError(Sender: TObject; Socket: TCustomWinSocket;
  ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
ErrorCode:=0; //當取消這一句後
end;
執行client.exe時就會提示:
client.exe發生問題,必須關閉,謹此致歉.
按下關閉後又提示:
'Exception ESocketError in module project1.exe at 0005C482.
No address specified.'
請問會是哪裡的問題?如何解決?
謝謝.

解决方案 »

  1.   

    ErrorCode:=0; //當取消這一句後这一句是不能取消的。
      

  2.   

    我想你的那个TClient类是自己写的一个类吧?而那个过程是用来处理SOCKET出问题时的过程ERRORCODE:=0,表示产生的异常有处理,所以系统就不会处理了,而你把它取消,系统就会去处理这个异常。
      

  3.   

    ErrorCode:=0; //當取消這一句後
    这句话是为了屏蔽socket异常用的,如果老兄你去掉了他,没关系,但要保证你的程序运行不会出现socket异常,如初始化时,socket连接很容易发生异常。socket连接异常就会出现类似于你给出的提示,这时程序很可能会退出。