gpt4 book ai didi

C# 套接字 StreamReader.ReadToEnd 永远等待

转载 作者:行者123 更新时间:2023-11-30 17:39:56 26 4
gpt4 key购买 nike

在通用 Windows 平台 (UWP) 应用程序中,我尝试使用套接字将对象发送到 Windows 窗体程序:

public void CreateListener()
{
TcpListener listener = new TcpListener(IPAddress.Any, port);
listener.Start();

while (true)
{
if (listener.Pending())
{
var childSocketThread = new Thread(() =>
{
string data = null;
var Client = listener.AcceptTcpClient();
using (NetworkStream ns = Client.GetStream())
using (StreamReader sr = new StreamReader(ns))
{
data = sr.ReadToEnd();
var Items = JsonConvert.DeserializeObject<Models.Orders>(data);
Process(Items);
ns.Flush();
ns.Close();
}
});
childSocketThread.IsBackground = true;
childSocketThread.Start();
}
else
{
Thread.Sleep(50); //<--- timeout
}
}
}

但是接收对象停留在 ReadToEnd 并且永远不会退出。我该怎么办?

最佳答案

当您想要发送数据时,您似乎遇到了问题,在刷新您的 StreamWriter 对象之后,您必须使用 StreamReader 作为响应。

            Stream streamIn = socket.InputStream.AsStreamForRead();
StreamReader reader = new StreamReader(streamIn);
string response = await reader.ReadLineAsync();

希望对您有所帮助。

关于C# 套接字 StreamReader.ReadToEnd 永远等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34921421/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com