[解決済み] TcpClientの接続を適切かつ完全に閉じる/リセットする方法は?
2023-05-17 15:50:16
質問
TcpClient 接続を閉じる、またはリセットする正しい方法は何ですか? ハードウェアと通信するソフトウェアがありますが、時々何かがうまくいかず、ソフトウェアを再起動するまで うまくいかず、ソフトウェアを再起動するまで、ハードウェアとの通信ができなくなることがあります。
TcpClient.Close() を強制的に実行し、さらにそれをヌルに設定することも試みましたが、うまくいきません。 ソフトウェアの完全な再起動のみが機能します。
提案はありますか?
TpcClient は 1 つの場所でしか定義されていませんが、ライブラリ全体で使用されているため、using キーワードを使用することができません。(そして、常に 1 つの接続しかありません)。
通信を処理するライブラリなのです。ソフトウェア自身がControllerクラス(ハードウェアを表す)のResetConnection()メソッドを呼び出すことができるのです。
現在は以下のようになっています。
if (tcpClient != null)
{
tcpClient.Close();
tcpClient = null;
}
ここで読んだところでは、私は " = null" の代わりに tcpClient.Dispose() を使用すべきです。
それを試して、違いがあるかどうか見てみます。
どのように解決するのですか?
接続を閉じる前に、ストリームを閉じる必要があります。
tcpClient.GetStream().Close();
tcpClient.Close();
クライアントを閉じても、ストリームは閉じません。
関連
-
[解決済み】指定されたキャストが有効でない?
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み】URLから画像をダウンロードする方法
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である
-
[解決済み] 複数の例外を一度にキャッチする?
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] async」と「await」の使い方とタイミング
-
[解決済み] コネクション・リセット・バイ・ピア」とはどういう意味ですか?
-
[解決済み] ディレクトリ内のすべてのファイルやフォルダを削除する方法は?
-
[解決済み】C#のyieldキーワードは何に使われるのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー。「戻り値を変更できません」 C#
-
[解決済み】GDI+、JPEG画像をMemoryStreamに変換する際にジェネリックエラーが発生しました。
-
[解決済み】文字列が有効な DateTime " format dd/MM/yyyy " として認識されなかった。
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み] UnityでOnCollisionEnterが呼ばれない
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。
-
[解決済み】パラメータ付きRedirectToAction
-
VSでscanfエラーを恒久的に解決するには、ソースファイルを作成し、自動的に#define _CRT_SECURE_NO_WARNINGS 1を追加してください。
-
[解決済み】Nullableオブジェクトは値を持たなければならない?