客户端如何通过TCP向服务器提交用户名和密码?
我用的IDNY TCPSERVER 和 TCPCLIENT组件

解决方案 »

  1.   

    我的实现方法是:
    procedure TFLogin.Button1Click(Sender: TObject);
    var
      temp,temp1:String;
      flag : integer;  //用于判断是否通过认证的标志
    begin    if ((UserId.Text = '') or (UserKey.Text = '')) then
          begin
            Application.MessageBox('请输入员工号和密码!','温馨提示:',MB_OK);
          end
        else
        begin
          flag := 0;    //全局标志变量
          ADOQuery1.Close;
          ADOQuery1.SQL.clear;
          ADOQuery1.SQL.Add('select * from person');
          ADOQuery1.open;
          while not ADOQuery1.eof do
          begin
            temp := ADOQuery1.FieldByName('id').asstring;
            temp := trim(temp);
            if temp=UserID.Text then
              begin
                temp1:=trim(ADOQuery1.FieldByName('passwd').AsString);
                if temp1=UserKey.Text then
                  begin
                    FMain.login:=True ;
                    FMain.UserId := StrToInt(UserId.Text);   //获取登陆名
                    FMain.Authority := ADOQuery1.FieldByName('authority').AsInteger;  //获取权限
                    FLogin.Close;
                    flag := 1;
                    exit;   //正确则退出登陆窗口
                  end  //判断密码是否正确结束
                else
                  begin
                    ADOQuery1.Next;   //如果错误,则转到下一个数据集比较
                  end
              end  //判断用户ID和密码是否正确结束
            else
            begin
              ADOQuery1.Next;  //转到下一个数据集比较
              flag := 0;
            end
          end;  //循环结束     //判断是否密码错误,显示错误提示
         if flag =0 then
           begin
             Application.MessageBox('用户名或密码错误!','温馨提示:',MB_OK);
             FMain.UserId := 0 ;
             FLogin.Close;
           endend;希望能给带来点灵感。
      

  2.   

    这位兄弟没明白我的意思。
    我并不是说在服务器上怎么验证。
    我的意思是怎么通过TCP控件同时发送用户名和密码。最好还是有用MD5加密后的密码。