Tag: disconnect

在异步读取期间TcpClient断开连接

我有一些关于完成tcp连接的问题。 在使用listener.BeginAcceptTcpClient(ConnectionEstabilishedCallback, null);接受客户端后,客户端使用Tcp连接到我的服务器.BeginAcceptTcpClient listener.BeginAcceptTcpClient(ConnectionEstabilishedCallback, null); ,我开始用networkStream.BeginRead(….)阅读。 当我等待消息时客户端断开连接会发生什么? (例如,它失去了电力,互联网等) 我怎么知道它什么时候发生? 如果成功读取后,我会做一些事情,然后调用networkStream.Close(); client.Close(); networkStream.Close(); client.Close(); 客户会看到什么? 如何“优雅地”终止连接? 如果我正在等待读取(使用BeginRead),然后(在不同的线程上)关闭相同的流会发生什么? 编辑添加:我确实在客户端和服务器之间发生了乒乓消息。 够了吗? 如果我没有收到ping,请终止我的NetworkStream? 肯定有一些更好的东西。

SignalR:客户端断开连接

SignalR如何处理客户端断开连接? 如果我陈述以下内容,我是对的吗? SignalR将通过Javascript事件处理检测浏览器页面关闭/刷新,并将相应的数据包发送到服务器(通过持久连接); SignalR不会检测浏览器关闭/网络故障(可能只是超时)。 我的目标是长轮询运输。 我知道这个问题但想对我说清楚一点。

如果没有数据发送,TCP套接字会在一段时间后自动关闭吗?

我有一个客户端服务器的情况,客户端打开到服务器的TCP套接字,有时很长一段时间将通过它们之间没有数据发送。 我遇到了一个问题,服务器试图将数据发送到客户端,它似乎成功,但客户端从未收到它,几分钟后,它看起来像客户端断开连接。 我是否需要每隔一段时间发送一些保持活动包? 编辑 :要注意,这是在同一台计算机上的同行。 计算机位于NAT后面,可以转发用于此计算机的一系列端口。 与服务器连接的客户端通过DNS打开连接。 即它使用mydomain.net和端口进行连接。

c#检测tcp断开连接

我有两个简单的应用程序: 等待特定tcp端口以供客户端连接的服务器应用程序。 然后倾听他的意见,发回一些反馈并断开该客户端的连接。 表单应用程序连接到服务器应用程序,然后说出一些内容,然后等待反馈并断开与服务器的连接,然后在表单中显示反馈。 虽然服务器应用程序似乎行为正常(我已经使用Telnet对其进行了测试,并且我看到反馈并且我看到反馈后直接发生了断开连接),但是表单应用程序似乎并没有注意到与服务器的断开连接 。 (即使在服务器断开连接后,TcpClient.Connected仍然保持为真) 我的问题是:为什么TcpClient.Connected保持正确,我怎么知道服务器是否/何时断开连接? 这是我的完整代码: 表格申请: using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Windows.Forms; using System.Threading; namespace Sender { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void sendButton_Click(object sender, EventArgs e) { TcpClient tcpClient = new TcpClient(); tcpClient.Connect(IPAddress.Parse(“127.0.0.1”), 81); responseLabel.Text = “waiting for […]