7

行に「接続されていないソケットでは操作は許可されていません」というエラーが表示され続けます

var ServerStream = Connect2Server.GetStream();

そして、私はその理由がよくわかりません

以下は、その関数の残りのコードです

var buffersize = 0;
var Convert2Tet = new ASCIIEncoding();
var Connect2Server = new TcpClient();
var ServerEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8801);
var ServerStream = Connect2Server.GetStream();

Console.WriteLine("Connecting to Server");

Connect2Server.Connect(ServerEndPoint);
var WelcomeMessage = new byte[4096];
ServerStream.Read(WelcomeMessage, 0, 4096);

Console.Write(Convert2Tet.GetChars(WelcomeMessage));

var UserCredentials = Console.ReadLine();
buffersize = Convert2Tet.GetByteCount(UserCredentials);

var Credentials = new byte[buffersize];
Credentials = Convert2Tet.GetBytes(UserCredentials);

ServerStream.Write(Credentials, 0, buffersize);
4

1 に答える 1

15

NetworkStream を取得する前に Connect() を取得する必要があります。

ドキュメンテーションは通常、この種のものにはかなり適しています。GetStreamのヘルプの例外の下に、次のように表示されます。

InvalidOperationException: TcpClient がリモート ホストに接続されていません。

于 2010-11-13T01:04:38.877 に答える