gpt4 book ai didi

c# - 套接字错误 : An existing connection was forcibly closed by the remote host

转载 作者:行者123 更新时间:2023-12-03 12:03:57 26 4
gpt4 key购买 nike

我该怎么办?关闭 socket ?我看不到问题,谷歌没有帮助
什么会导致此错误?据我了解,这是系统类型异常。
Exception

 Console.WriteLine("Connection Recieved");
while (true)
{
var handler = socket.Accept();
try
{
while (handler.Connected)
{
var x = new byte[200000];
try
{
handler.Receive(x);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.InnerException);
Console.WriteLine(ex.StackTrace);
}
var command = new string(Encoding.UTF8.GetChars(x.Where(t => t != 0).ToArray()));
if (string.IsNullOrEmpty(command))
{
break;
}
var data = (Dictionary<string, object>)JsonConvert.DeserializeObject(command, (typeof(Dictionary<string, object>)));
if (data["command"].ToString() != "getLog") continue;
var response = GetStatus();
handler.Send(Encoding.UTF8.GetBytes(response));
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.InnerException);
Console.WriteLine(ex.StackTrace);
}
}

最佳答案

在处理各种断开连接(软 transient :例如超时,可恢复:例如超过预付费数据计划限制, transient 硬件:纤薄的联想 rj45 插孔松动,不可恢复的硬件)时,“具有多层协议(protocol)的良好抽象网络”。 ..

这是一个很难解决的问题,因为库、开发人员和最终用户对于错误条件都有不同的需求,这取决于库或应用程序的类型或所涉及的使用情况。

John Carmack 刚刚发布了一些关于“abstractions 5uck”的推文,但在网络中,每个人都重新实现 TLS 或其他什么是不合理的。可以查看什么类型的接口(interface)是实用的(一些 C 人可能因为这些错误流问题而反对流).. 以及错误和警告在运行时如何流动,库编写者是否可以为编译器添加“编译器”的提示在开发过程中“流动”,这样开发人员就会收到有关哪种类型的错误可能从较低级别传播的警告,并通过抽象传播(如果有)。多个返回值为错误、状态、警告传播提供了一种方式,但异常的支持者认为,不抛出异常时会更快,但这可能归结为语言和编译器实现——例如。 jit 可以转向在热循环中使用异常并将异常转换为传播错误等。

当我开始使用 C# 时,我遇到的第一件事是如何处理所有可能的断开连接,并发现.. 是的 BCL/C# 看起来不错,但魔鬼在细节和令人惊讶的运行时异常,这些异常不同并且从不同的地方弹出取决于超时/断开/电缆拔出/硬件故障等可能是语言和库可以用作“用例”来构建语言和标准库(以及错误、状态等流范式)的“用例”,这样它们的用户更好地了解这些,而不必猜测哪个错误或异常以及它可能从哪里支撑。现在尝试提前添加错误处理是很困难的,并且其中一些情况越来越少(笔记本电脑中出现故障的 rj45 端口 - 大部分时间都有效) - 或者像 Surface Books 可拆卸显示器这样的东西,你从一个 GPU 转换到另一个等

这些东西很难,抽象通常会使情况变得更糟,但我们还需要一些抽象(如网络协议(protocol)等)。

事实上,这东西太难了,如果你去寻找它,关于“如何为非 John Carmack 级别程序员的人做更好的事情”这方面的文章并不多。我看到一个演示文稿暗示函数式编程可以有一些答案,但它并没有深入探讨网络中可能发生的所有事情,所以我没有 100% 相信这是答案,但这是一个开始。

https://vimeo.com/113707214

那是我看到的演示文稿,但是,是的,该模型能否适用于我根据需求概述的所有内容(以及可能的更多内容)?

关于c# - 套接字错误 : An existing connection was forcibly closed by the remote host,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42439656/

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