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

您必须先 Connect() 才能获得 NetworkStream。

文档通常非常适合这种东西。在GetStream帮助中的Exceptions下,您将看到:

InvalidOperationException:TcpClient 未连接到远程主机。

于 2010-11-13T01:04:38.877 回答