我在用ClientSocket向一服务器提交一段数据,我想从它返回的信息中判断我提交的数据是否执行成功.
如果执行成功的话它会返回信息中包含成功,否则返回信息中包含对不起,下面是我用来判断它返回信息的方法,但不知道怎么的,这样用不了.
请教下大家该怎么判断比较好呢/
(其实这个方法我也是从别人的例子中学来的.)
procedure TForm1.ClientSocketRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
a:string;
begin
a := Socket.ReceiveText;
if Pos('您的消息已成功发送至该邮件地址',a) > 1 then
    begin
      s:=s+1;
      StatusBar1.Panels[0].Text:='已成功向' + Trim(Edit1.Text) + '发送' + IntToStr(s) + '封邮件!';
    end;
if Pos('对不起',a) > 1 then
   begin
     StatusBar1.Panels[0].Text:='向' + Trim(Edit1.Text) + '发送邮件失败!';
     ClientSocket.Close;
    end;
end;

解决方案 »

  1.   

    用我的YTCPClient控件试试:http://community.csdn.net/Expert/topic/3864/3864900.xml?temp=.2741358
      

  2.   

    它返回的就是要么包含成功要么包含对不起.更怪的是,我用IF语句判断它如果返回包含成功就做什么,否则就做什么,结果是这两个它都执行了.就是说IF和ELSE的语句它都执行了.
      

  3.   

    a := Socket.ReceiveText;//有可能一次接收多条信息,既包含成功的 也包含失败的~~~~~~
      

  4.   

    我是用个FOR语句盾环发送的.数据的发送次数是我指定的.
    我测试时用过MEMO组件来接收它返回的信息.
    从MEMO接收的来看,要么包含成功,要么包含失败.
      

  5.   

    因为你用FOR循环发送的,在用Socket.ReceiveText接收时,会把所有的结果都串在一起的
      

  6.   

    不会吧??
    我用MEMO接收时看到它都是接收到一个会自动清除前面的啊.而并不是追加到后面的.