在服务器端用数据库(Paradox)记录客户端的IP、SocketHandle、UserName、PassWord?(100分)

  • 主题发起人 Hero_Hua
  • 开始时间
H

Hero_Hua

Unregistered / Unconfirmed
GUEST, unregistred user!
服务器端:在MyDb别名下建立一个数据表格(User Info.db),其中包括IP(记录客户端IP地址)、
SocketHandle(记录本次SocketHandle的值)、User(客户端用户名)、Password(客户密码)四个
字段。
客户端:在Form1上加入两个Edit控件,Edit1用于记录客户名,Edit2用于记录密码,在客户
端登陆服务器时,服务器要判断用户是登陆还是注册。若是注册则向服务器写入客户资料。
若是登陆则判断用户输入的用户名是否与密码对应,成功则给出登陆信息。否则断开连接。

问在服务器端如何判断用户是登陆还是注册?客户端的OnConnent事件中如何向服务器发出
User和Password参数信息?

procedure TForm1.ServerSocket1Accept(Sender: TObject;
Socket: TCustomWinSocket);
var temp:pchar;
user,pass:string;
begin
Table1.First;
user:=??????????????????
pass:=??????????????????
if not Table1.Eof then
if Table1.Locate('User;Pass',VarArrayOf([user,pass]),[loPartialKey]) then
//如何获取客户端发出的USER和PASS参数?
begin
temp:=PChar('登陆服务器成功'+#13+#10);
Socket.SendText(temp);
Table1.Edit;
//写服务器数据库
Table1IP.AsString:=Socket.RemoteAddress;
Table1SocketID.AsInteger:=Socket.SocketHandle;
Combobox1.items.add(Table1User.value);
end
else
begin
temp:=PChar('用户名或密码错,请稍后再试'+#13+#10);
Socket.SendText(temp);
Socket.Close;
end;
end;
 
顶部