次の点を考慮してください。
IPEndPoint ep = new IPEndPoint(ip, 0);
TcpClient tcpClient = new TcpClient (ep);
tcpClient.Connect(ep);
tcpClient
最初に にバインドしep
、 に接続するように に指示する必要があるのはなぜですかep
。Connect()
すでにバインドされているエンドポイントに比べて、私は奇妙に思えます。
を受け入れるコンストラクターは、ローカルエンドポイント アドレスIPEndpoint
をバインドするためのものです。リモートエンドポイントアドレスが渡されることを意図しています。これらの 2 つのことの一方は他方と矛盾しています。Connect
コンストラクタ:
クラスの新しいインスタンスを初期化
TcpClient
し、指定されたローカル エンドポイントにバインドします。
Connect
:
指定されたリモート ネットワーク エンドポイントを使用して、クライアントをリモート TCP ホストに接続します。
しかし、ローカル エンドポイントかリモート エンドポイントかがわからないため、どちらep
が間違っているかはわかりません。を指定したので、ローカル エンドポイントを推測します。0
この場合、呼び出し用に別のエンドポイントを識別する必要がありますConnect
。何に接続しようとしていますか?
ここに何かが欠けているかどうかはわかりませんが、デフォルトのコンストラクターがあります。
http://msdn.microsoft.com/en-us/library/aa329755(v=vs.71).aspx