こんにちは、ありがとうございました。 今回はTcpClientについて質問したいと思います。 私はサーバープログラムを持っており、クライアントプログラムを作成しています。 このクライアントはTcpClientを使用します。これは、新しいクライアントTcpClient:もう一度閉じると再接続するにはどうすればいいですか?
clientSocket=new TcpClient();
を作成することによって開始する(ちなみに、することができます。この原因の例外?私はのtry-catchの内側にそれを置くが、それが本当に必要であるかどうかはわからない念のため)後に、とにかく 私はループに入り、このループ内で私は、サーバーに
clientSocket.Connect("xx.xx.xx.xx",port);
を接続それから私は
clientStream=clientSocket.GetStream();
でNetworkStreamを作成し、サーバーthrouからのデータを待って開始しますgh読む。私はこれがブロックされているので、私はReadTimeOut(例えば1秒)を設定することも知っています。
とにかく、とても良いです。 後でサーバーから何も受信しなければ、何かを送信しようとします。これは言うために3回起こって続けた場合、私は、サーバーへの接続を閉じて再接続したい再び
(予告サーバが何らかの形でのエラーの他の種類の原因となる原因は、ダウンしているときはまったく違う問題があることをクライアント - おそらく私はそれについて後でお尋ねします)
どうすればいいですか?
if(clientSocket.Connected)
{
Console.WriteLine("Closing the socket");
clientSocket.Close();
}
ソケットを閉じます。 ループが終了したので、私は最初に戻り、サーバーに接続しようとします。
clientSocket.Connect("xx.xx.xx.xx",port);
しかし、これはそう私の質問は、私は閉じて、再びサーバーに再接続するにはどうすればよいでエラー(実際には未処理の例外が)「に配置されたオブジェクトにアクセスできません」
の原因?任意の助け再び
おかげ
感謝。私はタグを付け加えた。それは大丈夫ですか? (コメントに新しい行を挿入するにはどうすればいいですか...私がEnterを押すと、コメントを追加します。ctrl-enter、shift-enterを試しても動作しません... – KansaiRobot
ありがとう!段落やキャリッジリターンをサポートしていません。それらは常に1つのテキストブロックです。段落ではなくコメントです:-)複数の段落を必要とするようなコメントが必要な場合はほとんどありません。 –
捕捉している例外を明示的に知っていて、意味のある処理ができる場合にのみ、 'try' /' catch'ブロックにコードを入れてください。例外をキャッチするのはアンチパターンです。 https://blogs.msdn.microsoft.com/ericlippert/2008/09/10/vexing-exceptions/ – Enigmativity