首页 > 动态中心 > 技术文章  >  正文

C# TCP连接超时设置

2022-08-11 21:11:28

文章摘要:在重构洞察眼局域网监控软件的屏幕墙功能时,我们的目标是业务逻辑和界面更新分离。屏幕墙的一个特点是短时间内要和多个客户端建立连接传输数据,管理多个连接就不可避免要涉及到多线程问题,目的是要高效的传输屏幕数据。涉及到网络多线程编程肯定不会为每一个终端建立一个线程来收发数据,而是使用线程池。考虑到应用场合,我们发起连接的时候要有一个连接超时机制,本来在我们的C++代码里,已经有这

C# TCP连接超时设置

在重构洞察眼局域网监控软件的屏幕墙功能时,我们的目标是业务逻辑和界面更新分离。屏幕墙的一个特点是短时间内要和多个客户端建立连接传输数据,管理多个连接就不可避免要涉及到多线程问题,目的是要高效的传输屏幕数据。涉及到网络多线程编程肯定不会为每一个终端建立一个线程来收发数据,而是使用线程池。

考虑到应用场合,我们发起连接的时候要有一个连接超时机制,本来在我们的C++代码里,已经有这样封装好的函数,C#虽然也有Connect超时机制的代码,但是代码毕竟不是我写的,所以还是需要审查一遍。不看不知道,一看就发现了问题,大体TcpClient的连接超时代码如下:

public TcpClient Connect()
{
// kick off the thread that tries to connect
connected = false;
exception = null;
Thread thread = new Thread(new ThreadStart(BeginConnect));
thread.IsBackground = true; // 作为后台线程处理
// 不会占用机器太长的时间
thread.Start();

// 等待如下的时间
thread.Join(_timeout_milliseconds);

if (connected == true)
{
// 如果成功就返回TcpClient对象
thread.Abort();
return connection;
}
if (exception != null)
{
// 如果失败就抛出错误
thread.Abort();
throw exception;
}
else
{
// 同样地抛出错误
thread.Abort();
string message = string.Format("TcpClient connection to {0}:{1} timed out",
_hostname, _port);
throw new TimeoutException(message);
}
}

这里建立连接的时候竟然创建一个线程,然后利用线程超时就Terminate来实现超时机制,不得不可谓愚蠢之极,毕竟网上的代码都不负责任。

这样影响稳定性、影响性能的代码肯定不能再洞察眼中出现的。所以重新编写了C# TCP连接超时的代码。

namespace NSecsoft.NSec.Core.Util
{
class ConnectState
{
public readonly ManualResetEvent mrEve = new ManualResetEvent(false);
public TcpClient tcpClient;
}

public static class ConnectEx
{
public static bool ConnectWithTimeout(TcpClient client, IPAddress address, int port, int timeout)
{
bool ret = false;

try
{
ConnectState state = new ConnectState()
{
tcpClient = client
};

IAsyncResult ar = client.BeginConnect(address, port, new AsyncCallback(ConnectCallback), state);
state.mrEve.WaitOne(timeout);
if (client.Connected)
{
ret = true;
}
}
catch (Exception)
{
// ignored
}

return ret;
}

private static void ConnectCallback(IAsyncResult ar)
{
ConnectState state = ar.AsyncState as ConnectState;</blockquote>
state.mrEve.Set();
state.mrEve.Dispose();
state.tcpClient.EndConnect(ar);
}
}
}
上一篇 : 公司电脑监控软件
  • 相关推荐
  • 如何修改客户端(被控端)的连接参数

    本文中,你将学习如何修改客户端连接参数。

    2025-02-11 11:19:27
  • 远程连接电脑实现远程监控?这几个方法没见过吧?

    远程连接电脑实现远程监控,可以采用多种方法,这些方法各有特点,适用于不同的场景和需求。以下是一些常见的方法:1.专业电脑监控软件代表软件:如洞察眼MIT系统。特点:不仅具备远程连接和监控电脑的功能,还提供了全方位的安全防护和管理服务。操作步骤:在被监控电脑上安装被控端软件。在控制端电脑上安装主控端软件,并配置相关监控参...

    2024-08-27 14:38:01
  • 聊天摄像头连接电脑当监控软件(智能摄像头:电脑监控新时代)

    摘要:智能摄像头是指具备人工智能技术和网络连接功能的现代化监控设备。它通过图像识别、语音识别等技术,能够实时监控和分析周围环境,为用户提供更智能、便捷、安全的服务,将电脑监控带入了一个全新的时代。智能摄像头的发展1、智能摄像头起初主要用于安防领域,可实现对目标的实时监控和录像等功能。2、随着人工智能技术的发展,智能摄像...

    2023-08-25 00:00:00
  • 如何限制外部设备连接电脑

    随着计算机网络技术的快速发展,使用电脑办公的人数日益增加。作为电脑的衍生产品,U盘就像是一个可移动、便携的存储设备。其主要目的是用来存储数据资料,并通过USB接口与电脑连接,实现即插即用,使用非常简单方便,同时安全性也很好。U盘主要应用于个人数据的存储、电脑修复、系统管理以及携带应用程序到其他的电脑。然而,正如任何技术...

    2023-08-16 00:00:00
  • Windows自带的远程桌面连接为何不能代替洞察眼

    随着科技的发展,网络的进步,电脑已成为我们生活中密不可分的重要伙伴,有时候因为工作需要我们时常会通过远程桌面连接控制另一台电脑进行查找文件或者解决问题。远程桌面连接控制后我们就可以远程的控制这台计算机了,通过远程桌面连接控制功能我们可以实时地操作这台计算机,在上面安装软件,运行程序,所有的一切都好像是直接在这台计算机上...

    2023-08-16 00:00:00
  • 物联网连接设备给企业带来重大风险

    互联设备中的安全漏洞正在困扰着数字领域,影响着广泛的行业。据数据统计,IT设备占受影响设备的四分之三以上(78%),而物联网(IoT)设备占易受攻击设备总数的14%。运营技术(OT)和医疗物联网(IoMT)设备分别占6%和2%。近80%的IT设备漏洞被归类为高严重性,这表明给IT团队带来了巨大的挑战,因为这些漏洞可能导...

    2023-07-25 13:43:56
  • 通软终端安全管理系统显示未连接

    摘要:本文主要讲述了通软终端安全管理系统显示未连接的问题。该问题是指当用户尝试连接到终端时,系统显示未连接,无法进行相关操作。本文将从四个方面进行详细阐述,包括该问题的原因、影响、解决方案和预防措施。一、原因1、网络故障网络故障是通软终端安全管理系统显示未连接的一个主要原因。网络故障可能是由于网络连接不稳定或网络出现故...

    2023-06-14 18:19:51
  • 360终端安全管理系统未连接

    摘要:本文针对360终端安全管理系统未连接的问题进行了详细的阐述,提供了相关的背景信息。首先介绍了该问题的现状,然后从四个方面进行了详细的阐述,包括原因、解决方案、影响和未来的研究方向。最后,对文章的主要观点和结论进行了总结,并加上了一句引导用户咨询客服的广告语。一、原因分析360终端安全管理系统未连接的问题,是因为网...

    2023-06-14 18:00:15
  • 用局域网连接监控软件(局域网连接监控软件:快速建立安全监控系统)

    摘要:本文介绍了如何以局域网连接监控软件快速建立安全监控系统,旨在提供读者关于网络安全方面的背景信息并引起其兴趣。一、网络安全的重要性网络安全一直是企业和个人关注的焦点,最重要的是保护数据免受黑客、病毒和其他安全威胁的侵害。对于企业,数据是其重要的资产之一,一旦遭到攻击或丢失会造成严重的经济损失。因此,建立安全监控系统...

    2023-06-14 17:16:08
  • 电脑如何同步监控手机软件(电脑同步监控手机软件:实现无缝连接)

    摘要:电脑同步监控手机软件是现在越来越常用的应用程序,它让用户可以在电脑上实时监控手机的动态,无缝连接让用户的使用体验更为顺畅。本文将从软件的功能、优势、使用场景、市场需求等四个方面对电脑同步监控手机软件进行详细阐述。希望此文能够让读者更全面地了解这种应用程序的优点和不足,以及未来发展的前景。一、功能1、实时监控:该软...

    2023-06-13 15:52:11

大家都在搜的词:

微信扫一扫联系售前工程师