C# Socket连接请求超时处理

2023-11-20

在Socket的超时时间默认20多秒,而实际连上不需1秒时间,20多秒很多时候用户是不能接受的,而在等待返回结果的这段时间里程序会处于停止响应状态!废话不多说了,先上代码!

 

 private delegate string ConnectSocketDelegate(IPEndPoint ipep, Socket sock);


private string ConnectSocket(IPEndPoint ipep, Socket sock)
        {
            string exmessage = "";
            try
            {
                sock.Connect(ipep);
            }
            catch (System.Exception ex)
            {
                exmessage = ex.Message;
            }
            finally
            {
            }

            return exmessage;
        }

 private void Button1_Click(object sender, EventArgs e)
        {
            IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("192.168.4.1"), 8266);//IP和端口
            Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            ConnectSocketDelegate connect = ConnectSocket;
            IAsyncResult asyncResult = connect.BeginInvoke(ipep, sock, null, null);

            bool connectSuccess = asyncResult.AsyncWaitHandle.WaitOne(2000, false); //2秒后结束
            if (!connectSuccess)
            {
                MessageBox.Show(string.Format("连接失败!错误信息:{0}", "连接超时"));//2秒后弹出

            }
        }

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# Socket连接请求超时处理 的相关文章

  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 引用的程序集自动由 Visual Studio 替换

    我有 2 个项目 一个可移植类库和一个常规单元测试项目 在可移植类库中 我使用 NuGet 来引用 Microsoft BCL 可移植包 它附带 2 个程序集 System Threading Tasks dll and System Ru
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • 【机器学习】核函数

    有任何的书写错误 排版错误 概念错误等 希望大家包含指正 核方法 核技巧 非线性分类问题是指通过利用非线性模型才能很好地进行分类的问题 如图 1 1 1 所示 表示正样本 表示负样本 显然无法用直线 线性模型 将正负样本正确分开 但是可以用
  • android service 返回值,Android平台调用Web Service:线程返回值(示例代码)

    接上文 前文中的遗留问题 对于Java多线程的理解 我曾经只局限于实现Runnable接口或者继承Thread类 然后重写run 方法 最后start 调用就算完事 可是一旦涉及死锁以及对共享资源的訪问和随时监控线程的状态和运行顺序和线程返
  • macOS M2使用conda配置pytorch环境

    一 conda 首先我们需要有conda miniconda的安装配置流程可以看这个http t csdn cn ShcNb 二 进入官网 https pytorch org 选择对应的版本 复制下面的命令 conda install py
  • 2023年1月手机热门品牌型号排行榜(手机行业趋势分析)

    近期苹果降价引起人们的关注 并且优惠较大 iPhone 14 Pro系列在苹果官方授权渠道均降价 线下授权门店普遍降价700元左右 iPhone Pro与Pro Max作为苹果的旗舰产品 通常被认为是更为保值的机型 一般来说 不会在短期内大
  • ueditor编辑器右键粘贴、复制不能用的解决办法

    ueditor编辑器功能非常强大 现在比较多的网站页面或者系统中都集成了百度的ueditor编辑器 使系统编辑文本变得非常容易 但是默认状态下 在使用google内核的浏览器时 会出现右键粘贴复制都不能用的情况 会提示使用ctrl v粘贴
  • WEB交互界面易用性设计和验收的指导性原则

    随着企业intranet和国际internet的迅速发展 越来越多的工作流程 商务交易 教育 培训 会议和讲座 以及个人消费娱乐都被转移到所谓的万维网 World Wide Web 以下简称WEB 上来了 与此相对应的是交互操作的复杂性越来
  • keil device没有芯片

    若试了各种办法没有找到解决方案 可以试试我这个方法 若工程后缀是 uvproj 则可能是keil4的工程 而电脑装的是keil5的版本 改为 uvprojx后即可正常找到芯片了 也可以Project gt Manage gt Migrate
  • Java多线程的一个简单示例

    Java多线程简单示例 代码如下 public class Canteen extends Thread 餐总数 static int rice 20 取餐凭证 static Object key KEY public Canteen St
  • Spring Profiles提供了一种隔离应用程序配置的方式

    24 Profiles Spring Profiles提供了一种隔离应用程序配置的方式 并让这些配置只能在特定的环境下生效 任何 Component或 Configuration都能被 Profile标记 从而限制加载它的时机 Config
  • MySQL 8.0字符集校正

    MySQL升级为8 0版本时 之前版本的字符集往往是不同的 需要校正 执行下面的三个SQL语句的查询结果 可以从库 表 列三个层面对字符集进行校正 库 select concat alter database schema name def
  • pytest的介绍与使用

    pytest介绍 pytest整合了unittest 包含了unittest中的方法 并且比其更轻便快捷 而且结合Allure报告能够清晰的生成测试报告 1 安装 pip install pytest 2 测试文件 test py test
  • C# 选择ListView 报错误:InvalidArgument=“0”的值对于“index”无效。

    加判断 if this ListView SelectedItems Count gt 0 问题解决
  • flutter 安卓打包出现:Transform‘s input file does not exist:

    我的版本 Android studio 4 0 targetSdkVersion 30 出现了这个问题 解决方案 在你的build gradle文件里面添加一句话就可以了 android studio 4 0 以上打包会出现这个问题 lin
  • 工业安全生产信息化平台的基本架构和关键功能分享

    工业安全生产信息化平台是指利用信息技术手段 将工业安全生产管理与数据采集 传输 处理相结合 实现对工业安全生产全过程的数字化 信息化 智能化管理的平台 它通过集成多种信息系统和设备 实现对重大危险源监控预警 安全风险分级管控 安全生产一张图
  • SpringBoot统一异常拦截处理

    前言 大家你好 这是我的第一篇博客 我会把我所学所悟的知识以最简单的语言描述清楚 让大家通俗易懂 正文 下面我要对springboot 1 5 8 RELEASE 中异常拦截处理进行讲解 项目中我们是一定要碰到的情况就是无论在控制层 业务层
  • 安卓平台下ARM Mali OpenCL编程-GPU信息检测

    对于ARM Mali GPU 目前是支持OpenCL1 1 所以我们可以利用OpenCL来加速我们的计算 一直以来 对于Mali GPU的OpenCL编程 一直没有环境来测试 好不容易弄到一个华为Mate7 却因为华为没有提供OpenCL
  • C#__分析使用Winform开发坦克大战

    窗口 using System using System Collections Generic using System ComponentModel using System Data using System Drawing usin
  • python梯度提升回归树_梯度提升回归树(GBDT)

    梯度提升回归树 GBDT 发布时间 2018 08 30 13 22 浏览次数 1024 标签 GBDT 一 从Boosting思想开始 1 梯度提升回归树是一种从它的错误中进行学习的技术 它本质上就是集思广益 集成一堆较差的学习算法进行学
  • 记录一下实验室的GPU信息

    通过如下查询指令 cd usr local cuda samples 1 Utilities deviceQuery sudo make deviceQuery 最终得到如下信息 Detected 1 CUDA Capable device
  • C# Socket连接请求超时处理

    在Socket的超时时间默认20多秒 而实际连上不需1秒时间 20多秒很多时候用户是不能接受的 而在等待返回结果的这段时间里程序会处于停止响应状态 废话不多说了 先上代码 private delegate string ConnectSoc