So, I have this application that checks the weather, which the user can log into the system or not.
It consists of several Clients (up to 200) and a server that processes login requests (containing username, PW and IP). The server checks the weather when the user exists and sends a response.
TLoginQuery is a record.
procedure TLogin_Form.btnLoginClick(Sender: TObject);
var LoginQuery1: TLoginQuery;
begin
if not LoginSocket.Active then
begin
LoginSocket.Open;
end;
//Paketchen schnΓΌren.
LoginQuery1.Name := ledtName.Text;
LoginQuery1.Passwort := ledtPasswort.Text;
LoginQuery1.IP := LoginSocket.Socket.LocalAddress;
//LoginQuery Γn den Socket legen.
LoginSocket.Socket.SendBuf(LoginQuery1, SizeOf(LoginQuery1));
end;
The server is currently reading:
procedure TServer_Form.ServerSocketClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var LoginQuery: TLoginQuery;
uservalid: boolean;
begin
uservalid := false;
Socket.ReceiveBuf(LoginQuery, SizeOf(LoginQuery));
if CheckIfUserValid(LoginQuery) then
begin
uservalid := true;
ServerSocket.Socket.SendBuf(uservalid, SizeOf(uservalid));
end;
end;
Now the question is: Does the server (as usual) create another socket connection to the client?
My suggestion:
ClientA usernalid boolean ( ). uservalid boolean -, : , ClientA uservalid boolean ( ) ClientB, , ( ) uservalid boolean.
. ?