gpt4 book ai didi

c# - 客户端断开连接时检测并写入

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

我正在用 C# 编写一个简单的客户端/服务器应用程序。
如您所见,代码中有 if(cSocket.Connected) 标记,我想要类似的东西...
如果 cSocket 断开连接...
我会给出代码,你可以从标题和我的解释中理解我的问题......

这是代码;

服务器;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
TcpListener sSocket = new TcpListener(System.Net.IPAddress.Any, 3162);
int Counter = 0;
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("\n >> Server Started!");
sSocket.Start();
while (true)
{
Socket cSocket = sSocket.AcceptSocket();
NetworkStream NetworkStr = new NetworkStream(cSocket);
BinaryReader bReader = new BinaryReader(NetworkStr);
BinaryWriter bWriter = new BinaryWriter(NetworkStr);
IPEndPoint remoteIpEndPoint = cSocket.RemoteEndPoint as IPEndPoint;

if (cSocket.Connected)
{
Counter = Counter + 1;
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("\n >> Client Connected! ~ Total: " + Counter + " ~ [" + remoteIpEndPoint + "]");
bWriter.Write("\n >> Server Says: You Connected to Me!");
}
}
}
}

感谢您的帮助:)

最佳答案

我对 .NET 的东西不太熟悉,但理论上应用程序和协议(protocol)(包括 TCP/IP)有某种超时等待。就像在 TCP/IP 协议(protocol)系列中一样,一方在发送包后等待另一方一段时间,如果他没有得到答案,他会再次尝试和/或在一段时间后关闭连接。

简而言之,您可以定期发送一个小请求并检查客户是否回答。

关于c# - 客户端断开连接时检测并写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11680094/

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