2017-12-12 23 views
1

私はちょっとTcpClientクラスと混同しています。私は自分のサーバーに接続し、2つのストリームを持っています。 1つのSSLと1つの通常の非セキュアTCP。異なるポート上のTcpClient上の複数のストリーム?

だから私は現在、次のように接続します。

await _tcpClient.ConnectAsync(address,port); 
IsConnected = true; 
_networkStream = _tcpClient.GetStream(); 
_sslStream = new SslStream(_tcpClient.GetStream()); 

問題は、私は別のポートで使用したい私のSSLデータです。だから、私は2つのTcpClientインスタンスを安全にするために、そして非セキュアにする必要がありますか?または、私はこのクラスで異なるポートに複数のストリームを持つことができます。私はその仕組みが混乱していますか?私はこれがどのように正しくセットアップされるのか本当に混乱しています。

+0

同じサーバーに接続する場合は、2つの異なるポート番号を持つTcpClientオブジェクトが必要です。 2つのクライアント間に同期はありますか?通常、SSLにはコマンド用のポートとデータ転送用のポートがあります。コードの量を減らすために、Tcpコード用のクラスを作成し、クラスの2つのインスタンスを作成します。 – jdweng

+0

はい、私はそれが両方のTCPクライアントでクラスを作成すると思います。 :) – WDUK

答えて

0

はい、2つの別個のSocketインスタンスが必要です。 TcpClientの2つのインスタンスを経由してになる可能性があります。私は個人的には生のソケットを好む傾向がありますが、それはあなた次第です。

+0

'TcpClient'と' Socket'インスタンスの違いは何ですか? – WDUK

+0

理論的には、 'TcpClient'はソケットでの作業をより簡単にするためにいくつかのものをラップするのに役立ちます。しかし、APIは非常に薄い抽象であるため、ほとんどの場合、生のソケットや最悪の場合には「NetworkStream」に対して簡単に作業できます。 –

+0

ああ、私は、私はちょうど2つのTcpClientsを使用すると思います。全体の開始/コールバックセットアップ対TcpClientの非同期はちょっと私に今混乱しているようです。 – WDUK

関連する問題