私は、TcpClientがソケットクラスのラッパーであることを理解しています.TcpClientを使用している場合、基盤となるソケットにアクセスできますが、ラッパーは正確に何をしますか?Socketを介してTcpClientを直接使用する利点は何ですか?
TCPClientを使用する場合、ソケットで行うようにReceive()を呼び出す必要がありますか、またはラッパーによってすべてのデータが確実に表示されますか?
最後に、私は(サーバー上の元の接続を受け入れるようにTcpListenerを使用した後に)ソケットをラップするために、サーバーとクライアントの両方でれるtcpClientを使用することができます
ああ、わかりました。だから私はソケット受信時のメッセージが_myTcpClient.GetStream()を使って実行できるようになるまで、_BeginReceive()、EndReceive()、バイトストア、そしてBeginReceive() TcpClientで? BeginRead()は、指定されたバイト数が実際に受信されるまで、EndRead()コールバックを呼び出しませんか? (すべての予想されるバイトが受信されるまで、BeginRead()/ BeginReceive()を常に呼び出す必要はありません) – Dermot
'BeginRead'と' EndRead'の代わりに 'NetworkStream'クラスの' Read'メソッドと 'Write'メソッドを使用したいあなたが明示的に 'BeginRead'と' EndRead'を呼び出す必要がないので、ラッパーはあなたのためにそれを行います。このようなインターネット上のいくつかのサンプルを参照してくださいhttp://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.getstream.aspx –
私のためにそれを明確にしてくれてありがとう。 – Dermot