C# Sockect 客户端检测与服务端的连接

方法一,使用cmd netstat -n查看当前端口运行情况
public string Execute(string command)
        {
            System.Diagnostics.Process p = new System.Diagnostics.Process();
            p.StartInfo.FileName = "cmd.exe";
            p.StartInfo.UseShellExecute = false;    //是否使用操作系统shell启动
            p.StartInfo.RedirectStandardInput = true;//接受来自调用程序的输入信息
            p.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息
            p.StartInfo.RedirectStandardError = true;//重定向标准错误输出
            p.StartInfo.CreateNoWindow = true;//不显示程序窗口
            p.Start();
            //向cmd窗口发送输入信息  + "&exit"
            p.StandardInput.WriteLine(command + "&exit");
            p.StandardInput.AutoFlush = true;
            //p.StandardInput.WriteLine("exit");
            //获取cmd窗口的输出信息
            string output = p.StandardOutput.ReadToEnd();
            Console.WriteLine(output);
            p.WaitForExit();
            p.Close();
            return output;
        }

            //判断执行结果是否包含服务端连接即可
            string results = Execute("netstat -n");
            if (results.Contains("172.168.52.222:8999"))
            {
                Console.WriteLine("---results true ---");
            }
            else
            {
                Console.WriteLine("---results false ---");
            }
方法二,使用客户端程序再向服务端临时创建一个连接,用连接结果判断连接情况,记得关闭临时创建的连接
方法三,使用DotNetty框架,再ChannelHandlerAdapter接口的ExceptionCaught方法和HandlerRemoved方法监听实时的连接情况
public class TcpServerHandler : ChannelHandlerAdapter
    {
        
        /// 
        /// 捕获 异常,并输出到控制台后断开链接,提示:客户端意外断开链接,也会触发
        /// 
        public override void ExceptionCaught(IChannelHandlerContext context, Exception exception)
        {
            Log.WriteLog($"客户端{context}下线.");
            context.CloseAsync();
        }

        /// 
        /// 客户端下线断线时
        /// 
        public override void HandlerRemoved(IChannelHandlerContext context)
        {
            Log.WriteLog($"客户端{context}下线.");
            base.HandlerRemoved(context);
        }
    }

你可能感兴趣的:(C# Sockect 客户端检测与服务端的连接)