草庐IT

tcp_keepalives

全部标签

c# - HttpWebRequest 如何处理(过早)关闭底层 TCP 连接?

我很难确定在使用.NET的HttpWebRequest类调用远程服务器(特别是RESTWeb服务)时是否有办法处理潜在的连接问题。根据我的调查,WebClient类的行为是相同的,这在某种程度上是意料之中的,因为它似乎只为HttpWebRequest提供了一个更简单的接口(interface)。出于模拟目的,我编写了一个非常简单的HTTP服务器,它的行为不符合HTTP1.1RFC。它所做的是接受客户端连接,然后发送适当的HTTP1.1header和“HelloWorld!”有效负载返回给客户端并关闭套接字,服务器端接受客户端连接的线程如下所示:privateconststringm_d

c# - 此处是否需要 GC.KeepAlive,或者我可以依靠局部变量和参数来保持对象的事件状态吗?

我有很多方法采用WPF的WriteableBitmap并使用不安全的代码直接从其BackBuffer中读取。每当我做这样的事情时,我是否应该使用GC.KeepAlive并不完全清楚:intMyMethod(WriteableBitmapbmp){returnDoUnsafeWork(bmp.BackBuffer);}一方面,在MyMethod的堆栈上仍然有对bmp的引用。另一方面,它似乎依赖于实现细节-这可能会编译为尾调用,例如,在输入DoUnsafeWork时不保留对bmp的引用。类似地,想象以下假设代码:intMyMethod(){WriteableBitmapbmp1=getAB

c# - TCP 错误代码 10061 : No connection could be made because the target machine actively refused it

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。Couldnotconnecttonet.tcp://localhost:5051/user.Theconnectionattemptlastedforatimespanof00:00:02.0600206.TCPerrorcode10061:Noconnectioncouldbemadebecausethetargetmachineactivelyrefusedit127.0.0.1:5051.

c# - 如何使用 GC.KeepAlive() 以及用于什么目的?

我们如何使用GC.KeepAlive()目的是什么?我使用套接字将文件从终端(Windows-CE)传输到服务器。传输所需时间为8分钟。5分钟后Windows-CE关闭(如果未按下触摸屏)如果我为此使用GC.KeepAlive(),这是否解决了我的问题? 最佳答案 您很少需要使用GC.KeepAlive-非常很少。例如,如果您想防止终结器的副作用过早发生,您可以使用它。我最常看到它用于Mutex-保持互斥直到应用程序结束,以确保只有一个实例。(using语句实际上在这里更好,但这是另一回事。)不,这听起来与您的情况无关。

c# - 给定服务器的 IP 地址和端口,如何使用 C# 测试到服务器的 TCP 连接?

如何以编程方式使用C#确定我是否可以访问具有给定IP地址和端口的服务器(TCP)? 最佳答案 您可以使用Ping类(.NET2.0及更高版本)Pingx=newPing();PingReplyreply=x.Send(IPAddress.Parse("127.0.0.1"));if(reply.Status==IPStatus.Success)Console.WriteLine("Addressisaccessible");您可能希望在生产系统中使用异步方法来允许取消等。 关于c#-给定

c# - 通过 tcp 或套接字发送类型化对象

我在为我在Xna中制作的一个非常简单的游戏创建网络接口(interface)时遇到了麻烦。我只需要通过TCP客户端/套接字发送对象。前任:我有一个名为“播放器”的类。在每个Player中,都有一个名为“Info”的字段,类型为“PlayerInfo”。在客户端/服务器中,我需要将每个玩家的信息发送给每个客户端,除了发送它的客户端(显然)。这是一个简单的例子,但我需要用大约5到10个对象来做这件事,再加上发送玩家更新(位置、Action……)有没有一种简单的方法可以用TCP/Sock做到这一点?注意:我将我在C#和编程方面的知识评为6/10,因此如果您有解决方案,则无需解释所有内容(例如

Nginx:转发TCP流量

一.场景介绍近日在使用Docker容器部署某代理应用的时候发现,该应用监听的是127.0.0.1:1080地址,所以正常情况只有本地的程序才能使用该代理,但实际需要的是局域网或公网用户都可以访问使用。二.解决方案该代理应用使用的协议为http/sock,因此只要把外部网络的TCP流量转发到本地1080端口即可。Nginx支持转发http流量和tcp流量,因此这里就使用Nginx来解决。1.环境安装安装Nginx,该容器使用的镜像是Alpine,提供的包管理工具为apk,根据自己的系统工具来安装即可apkaddnginx安装stream模块apkaddnginx-mod-stream2.配置文件

c# - 如何使用 .NET Framework 获取所有事件的 TCP 连接(无非托管 PE 导入!)?

如何使用.NETFramework获取所有事件的TCP连接(没有非托管PE导入!)?我正在学习套接字编程,想检查一下。在我的研究中,我通过导入一个我不感兴趣的非托管DLL文件找到了解决方案。 最佳答案 令我感到惊讶的是,有大量用户告诉我,使用纯托管代码是不可能的...对于future对此感到疑惑的用户,请从对我来说很好的答案中找到详细信息://Don'tforgetthis:usingSystem.Net.NetworkInformation;publicstaticvoidShowActiveTcpConnections(){Co

TCP的服务器和客户端的通信

1.网络编程的目标实现不同主机之间的进程间通信(服务器和客户端的通信),并且一个服务器可以处理很多个客户端的请求。2.OSI模型与TCP/IP协议体系结构协议:通信双方所遵守的通信规则。网络体系结构:指网络的层次结构和每层所使用的协议的集合。网络采用分而治之的方法设计,将网络的功能划分为不同的模块、以分层的形式有机组合在一起。每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务。两类非常重要的体系结构:OSI与TCP/IPOSI与TCP/IP参考模型的对应关系                        OSI模型            T

c# - GC.KeepAlive 与使用

在他的articleaboutpreventingmultipleinstancesMichaelCovington展示了一个应用程序的代码:staticvoidMain()//argsareOKhere,ofcourse{boolok;m=newSystem.Threading.Mutex(true,"YourNameHere",outok);if(!ok){MessageBox.Show("Anotherinstanceisalreadyrunning.");return;}Application.Run(newForm1());//orwhateverwasthereGC.Kee