socket问题,请各位帮忙,谢谢!

socket问题,请各位帮忙,谢谢! Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061129103700235.html
我的服务端程序如下:  
  Procedure   TFileServerThread.ClientExecute;  
  Var  
      Data:   Array[0..1023]   Of   char;  
      RecText:   String;  
      SocketStream:   TWinSocketStream;  
  Begin  
      While   Not   Terminated   And   ClientSocket.Connected   Do  
      begin  
          Try  
              SocketStream   :=   TWinSocketStream.Create(ClientSocket,   30000);  
              if   SocketStream.WaitForData(60000)   then  
              begin  
                  Try  
                      FillChar(Data,   SizeOf(Data),   0);  
                      If   SocketStream.Read(Data,   SizeOf(Data))   =   0   Then  
                      Begin  
                              ClientSocket.SendText('Timeout   on   Server'+#13#10);  
                              sleep(1);  
                              ClientSocket.Close;  
                              Terminate;  
                      End;  
                      RecText   :=   Data;  
                      If   Length(RecText)   >   2   Then  
                            Delete(RecText,   Pos(#13#10,   RecText),   2);   //   Delete   #13#10  
                      If   ClientSocket.Connected   Then  
                      Begin  
                              ClientSocket.SendText(RecText);  
                              SendMessage(Form1.Listbox1.Handle,   LB_ADDSTRING,   0,   Integer(PChar(RecText)));  
                              PostMessage(Form1.Handle,   CM_INCCOUNT,   0,   0);  
                      End;  
                  Finally  
                  SocketStream.Free;  
                  End;  
              end;  
        Except  
        //HandleException;  
        //showmessage('ERROR!!!!!!!!');  
        ClientSocket.Close;  
        Terminate;  
        End;  
      end;  
  End;  
  但是当程序运行的时候,会在If   SocketStream.Read(Data,   SizeOf(Data))   =   0   Then这一句报错:指定的网路名不再可用。我看过原来的帖子说:把  
  Except  
        //HandleException;  
        //showmessage('ERROR!!!!!!!!');  
        ClientSocket.Close;  
        Terminate;  
        End  
  这一段程序中的HandleException去掉,我现在已经把它去掉了,但是还是在  
  If   SocketStream.Read(Data,   SizeOf(Data))   =   0这一句报同样的错误,是在不知道怎么回事了,请各位大侠帮忙,谢谢!!!      
 

单步跟踪看看吧,可能在执行中把ClientSocket关闭了,那么SocketStream创建不成功。

先调试通server,然后运行他,在来调试client。

转载于:https://www.cnblogs.com/delphi2007/archive/2009/03/02/1401344.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值