-1

タイムアウトが発生したときにサーバーからクライアントをキックする簡単な方法はありますか? ソケットはTCPです

4

2 に答える 2

2

close(2)ファイル記述子だけで、それからの読み取りを停止します。

于 2012-08-11T09:32:20.810 に答える
0

キックという用語はあいまいです。通常、サーバーの TCP スタックに強制的に接続をリセットさせるにはSO_LINGER、タイムアウトのオプションを有効にして0からソケットをシャットダウンします。以下の例 (エラー チェックなし)。

struct linger lo = { 1, 0 };
setsockopt(sock, SOL_SOCKET, SO_LINGER, &lo, sizeof(lo));
shutdown(sock, SHUT_RDWR);
close(sock);

が複製されていないshutdownことが確実な場合は、を明示的に呼び出す必要はありません。sock

于 2012-08-11T09:59:12.410 に答える