2

おはようございます、

アドバイスが必要です。TcpClientからストリーミングしているnetworkStreamを使用していますが、すべて正常に機能していましたが、ストリームを閉じる必要がある他の場所でいくつかの機能が必要でした。接続を閉じた後、接続を再度開く方法が見つからないようです。誰かが私をここで正しい方向に向けることができますか?

これが私が基づいているコードの例です:(明らかにこれは正確にそれがどのように機能するかではありませんが、私はそれを可能な限り単純化しました:-))

private void MyMainFunction()
  {
  ConnectToTcp();

  if(CheckConnection == true)
    {
    DoWorkWithTcp();
    }

  DisconnectFromTcp();

  ConnectViaOtherSource();
  DoOtherSourceWork();
  DisconnectOtherSource();

  ConnectToTcp(); //Excecption thrown, epic fail!
  }

private void ConnectToTcp()
  {
  myClient = new TcpClient(ip, port);
  myNetStream = myClient.GetStream();
  }

private void DisconnectFromTcp()
  {
  myNetStream.Close();
  myClient.Close();
  }

よろしくお願いします。

編集-変数のスペル名を変更しました!おっと!

編集-申し訳ありませんが、問題が他の場所から発生していることに気づきました。このコードが正しいことを確認していただきありがとうございます:-)別のソースから問題を見つけるのに役立ちました

4

2 に答える 2

1

全部貼り付けなかったのでわかりませんが

myClient = new TcpClient(ip、port); myNetStream = sockClient.GetStream();

sockClientはmyClientではありませんこれはタイプミスですか、それとも実際にコードに含まれていますか?その場合は、sockClientも再作成する必要があります

于 2009-08-11T09:22:23.070 に答える
1

なぜ接続を閉じなければならないのかという質問が出てきます。DoOtherSourceWork()の間、接続を開いたまま(休止)にしておくことはできませんか?

それとは別に、コードは問題なく見え、新しいTcpClientなどを作成するので、反対側に依存すると思います-接続を閉じると、ピアソフトウェアは何をしますか?

于 2009-08-11T09:22:46.767 に答える