我正在测试一个应用程序,在该应用程序中我使用 TcpClient 连接到服务器,发送字符串并等待响应。这在单步执行应用程序时有效,但在没有断点的情况下运行它时,结果为空。
具体来说:我想联系一个 TS3 服务器。这是代码:
class Program
{
static void Main(string[] args)
{
var response = new ServerConnection().GetResponse();
Console.WriteLine("Response erhalten!");
Console.WriteLine(response);
Console.ReadKey();
}
}
public class ServerConnection
{
public string GetResponse()
{
string result = "";
using (var client = new TcpClient())
{
client.Connect(IPAddress.Parse("193.111.136.17"), 10011);
using (var ns = client.GetStream())
{
byte[] bytesToSend;
bytesToSend = Encoding.ASCII.GetBytes("help");
ns.Write(bytesToSend, 0, bytesToSend.Length);
byte[] response = new byte[1024];
if (ns.DataAvailable)
ns.Read(response, 0, response.Length);
using (var ms = new MemoryStream(response))
{
using (var sr = new StreamReader(ms))
{
result = sr.ReadToEnd();
}
}
}
}
return result;
}
}
谁能告诉我,为什么在正常运行时会填充响应\0
(导致空白文本result
),但在逐步执行时包含一些“有用”的文本?这让我发疯...... aaarg !
提前致谢!