c# - 检查客户端是否正在尝试连接?

标签 c# sockets networking

为了检查消息是否挂起,我可以使用 Socket.Available,但是我应该怎么做才能在调用 之前检查客户端是否正在尝试连接到我的服务器套接字接受?

最佳答案

TCP 不提供消息,因此您在任何情况下都无法检查消息。您可以看到至少有多少字节可用,但它可能不是一条消息,也可能是多条消息。此外,当 1ns 后数据到达时,Available 可能为 0。所以测试不会给你带来任何好处。

您永远不需要检查数据或连接。

只需运行一个接受循环:

while (true) {
 RunConnectionAsync(socket.Accept());
}

阅读也是如此:当数据可能到来时,始终有一个未完成的阅读请求。 Read 将等待数据到达。

做。或者不要。没有尝试。 (在这种情况下:总是这样做。)

关于c# - 检查客户端是否正在尝试连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38118672/

相关文章:

linux - 如果我有 10000 连接到我的运行在 linux 机器上的应用程序服务器,如果我 netstat 我应该看到什么?

c++ - imap 客户端 - 如何编写正确的请求?

ios - 创建多个 NSURLConnections 并使用 sendAsynchronousRequest :queue:completionHandler: iOS 5 method

c# - 使用 Prism、MVVM、MEF 在 WPF 中动态生成控件

c# - 为什么我不能在 Silverlight 中绑定(bind) Grid.RowDefinition 高度?

java - 检查 Java TCP 服务器上的客户端断开连接 - 仅输出

linux - 服务器发送复位信号而不是FIN

c# - "Either the application has not called WSAStartup, or WSAStartup failed"是什么意思?

c# - OWIN 外部登录刷新 token

C# - 来自动态对象的隐式构造函数