我想编一个函数,知道IP,和欲发送的信息,发送成功返回1,发送失败返回0。
不在ClientSocket的OnConnect和OnError事件中来判别与目标主机建立连接是否成功。在函数、过程中怎么样判别Function SendMessage(var IP:string;News:string):integer;
begin
  Form1.ClientSocket1.Close;
  Form1.ClientSocket1.Address:=IP;
  Form1.ClientSocket1.Open;
  ****************************//判断条件,如何判断??????
  begin
     Form1.ClientSocket1.Socket.SendText(News);
     SendMessage:=1;
   end
  else
     SendMessage:=0;
  ****************************//问题所在
 Form1.ClientSocket1.Close;
end;

解决方案 »

  1.   

    Function SendMessage(var IP:string;News:string):integer;
    var
      n:Integer;
    begin
      with Form1.ClientSocket1 do
      begin
        Close;
        Address:=IP;
        Open;
      
        while not ClientSocket1.Active do
        begin
          Application.ProcessMessages;
        end//这个循环条件里面没有加上超时,需要的话你自己加。    n:=Socket.SendText(News);
        if n=length(News) then
           Result:=1
        else
           Result:=0;
        Close;
      end;
    end;
      

  2.   

    Form1.ClientSocket1.port :=?
    难道不设定port就能连上吗?
    还是你在属性页中设定好了?