【发布时间】:2012-12-01 18:00:31
【问题描述】:
我试图打印发送到端口 2000 的信息,但我得到的只是“System.Net.Sockets.NetworkStream”。有没有办法将流转换为字符串?或者直接打印流信息的方法。
static void Main(string[] args)
{
while (true)
{
TcpListener TL = new TcpListener(IPAddress.Any, 2000);
TL.Start();
Socket S = TL.AcceptSocket();
Stream SS = new NetworkStream(S);
string MSG = SS.ToString();
Console.WriteLine(MSG);
}
}
编辑:这里是客户端
static void Main(string[] args)
{
try
{
TcpClient TC = new TcpClient();
TC.Connect("XXX.XXX.XXX.XXX", 2000);
NetworkStream Writer = TC.GetStream();
string MSG = Console.ReadLine();
byte[] pack = Encoding.ASCII.GetBytes(MSG);
Writer.Write(pack, 0, pack.Length);
Writer.Flush();
}
catch
{
Console.WriteLine(" faild");
Console.ReadLine();
}
}
PS:应用程序在执行后也会崩溃
【问题讨论】:
-
使用 try/catch 块来避免应用程序崩溃。还有@L.B.给你一个答案,不要调用流的对象ToString来获取流数据,而是使用StreamReader。
标签: c# sockets stream tcplistener