私はC++で書かれたサーバ上で簡単なログインのタイムアウトを書いています。 まあ、これはコードです:C++でのログインにタイムアウトを設定する方法は?
char username[this->BUFSIZE];
clean(username);
char password[this->BUFSIZE];
clean(password);
send(client_fd, "USER", 4, 0);
//Start timer
time_t end,start;
double dif;
time (&start);
recv(client_fd,username,BUFSIZE,0);
send(client_fd, "PASS", 4, 0);
recv(client_fd,password,BUFSIZE,0);
//End timer
time (&end);
dif = difftime (end,start);
//If dif>10 seconds disconnect the client.
if(dif>10)
close(client_fd);
[OK]を、それが正常に動作しますが、ちょうど問題がある:切断は、クライアント側は、ユーザー+パスワードを入力した場合にのみ発生します。私の目標は、タイマーは、クライアントがログインをしたかどうかに関わらず、10秒で接続を閉じる必要があるということです。
可能ですか? ありがとうございました!
「ハウスキーピング」スレッドが必要で、バックグラウンドを実行し、ユーザーの操作に関係なくセッションをチェックして無効にするように聞こえます。 – trojanfoe