我现在正在做一个程序的登录验证。和服务器之间的通信的已经建立的,现在又个这样的问题在服务器验证用户名和密码之后,如果用户名和密码验证失败,就向客户端发送一个信息'lf'..如果用户名和密码验证正确,服务器端程序继续运行到用户是否在线的验证,如果已经有人登陆过那就返回一个信息'lh'给客户端说明已经登录了该账号。在客户端我有用socket.receivetext来接收信息
我是这样写的:
客户端=======================================================================
  if socket.ReceiveText='lf' then//验证用户名和密码的正确性
    begin
      showmessage('用户名或密码错误,请重新输入');
      formlogin.ComboBoxLoginName.Text:='';
      formlogin.EditPassword.Text:='';
      ClientSocket1.Close;
      self.Hide;
      formlogin.Show;
    end;
  if socket.ReceiveText='lh' then  //验证用户是否处于登录状态
    begin
      showmessage('用户已经登录,请重新尝试登陆');
      formlogin.ComboBoxLoginName.Text:='';
      formlogin.EditPassword.Text:='';
      ClientSocket1.Close;
      self.Hide;
      formlogin.Show;
    end;
==============================================================================服务器端======================================================================
begin
     socket.ReceiveBuf(info1,sizeof(info1));
     ADOQuery1.SQL.Clear;
     ADOQuery1.SQL.Add('select * from users where user_Number='+info1.UserNumber+' and user_password="'+info1.UserPassword+'"');
     ADOQuery1.Open;
     if ADOQuery1.RecordCount = 0 then
       begin
         session[i].CSocket.SendText('lf');//session为数组,作线程用
         //adoquery1.Close;
       end
     else
       begin
         sql:='select * from online where login_Number='+info1.UserNumber;
         adoquery1.Close;
         ADOQuery1.SQL.Clear;
         ADOQuery1.SQL.Add(sql);
         adoquery1.Open;
         if ADOQuery1.RecordCount <> 0 then
           begin
             showmessage('该用户已经在线');
             session[i].CSocket.SendText('lh');//用户的帐号已经在线~发送lh给客户端告诉他已经登录过了这个账号
           end
         else
           begin
             showmessage('该用户不在线');
           end
       end;
     ADOQuery1.Close;
   end;
==============================================================================我这样写客户端的程序的话,好像接收不到‘LH‘
请问我要怎么写我也尝试着吧socket.receivetext放到一个字符串里,但是这样会对之后接收信息产生问题