コネクションを開放するには?

解決


ねいる  2006-12-13 18:56:28  No: 24235

WindowsXP(sp2) + Delphi6 (Ent)にてファイル転送アプリケーションを
作成しています。

サーバー側はサービスアプリケーションとして動作し、TServerSocket
コンポーネントを用いて通信を行います。また、クライアントからの
電文を受信しクライアントへファイルを送信します。
クライアント側は、TClientSocketコンポーネントを用い、サーバー側
への電文送信によりサーバーよりファイルを受信します。
通信方式は、ブロッキング通信です。

クライアント側からClientSocket1.Closeと切断を行っても
ActiveConnections の数が減りません。

また、クライアント側からサーバー側へ切断要求の為の電文を送信し
サーバー側で受信後にClientSocket.Closeを行っても
ActiveConnections の数が減りません。

例えば、クライアントが2台接続されている場合、ActiveConnectionsは「2」と
なりますが、クライアント1台がClientSocket1.Closeを行った場合、
ActiveConnectionsは「1」となってほしいのですが、
ActiveConnectionsは「2」のままです。

ServerSocket.Connections のリストから削除されていない事が問題と思われますが、
どうすれば、コネクションを開放できるでしょうか?


ねいる  2006-12-22 23:36:34  No: 24236

>また、クライアント側からサーバー側へ切断要求の為の電文を送信し
>サーバー側で受信後にClientSocket.Closeを行っても
>ActiveConnections の数が減りません。

サーバー側のスレッド処理内ではActiveConnectionsの数は変わりませんが、スレッドを抜けた後はActiveConnectionsの数が減っていました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加