c#左右socket连接超时控制方案
之前有一个项目中使用Remoting技术。当远程地址无效或server不执行,访问远程对象的方法,它会经过几十秒的时间来抛出异常秒。
由于我使用tcp状态。因此,认为可以使用socket为了测试连接,它可以调用远程对象之前,该服务没有办法知道远端执行。码如下面:
public class TcpServiceConnect
{
protected EventWaitHandle m_event;
public TcpServiceConnect()
{
m_event = new EventWaitHandle(true, EventResetMode.ManualReset);
}
public void Close()
{
m_event.Set();
}
public bool TryConnect(string ip, int port)
{
m_event.Reset();
var point = new IPEndPoint(IPAddress.Parse(ip), port);
var sok = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sok.BeginConnect(point, ConnectCallBack, sok);
m_event.WaitOne(3000, false);
bool isConnected = sok.Connected; //事件等结束后。通过这个属性能够知道有没有连续成功
sok.Close();
return isConnected;
}
private void ConnectCallBack(IAsyncResult asyncresult)
{
try
{
var sok = (Socket)asyncresult.AsyncState;
sok.EndConnect(asyncresult);
}
catch { }
m_event.Set();
}
}
版权声明:本文博主原创文章,博客,未经同意不得转载。
c#左右socket连接超时控制方案的更多相关文章
- java异步式Socket响应数据获取方案
项目中存在 云中央控制器需要使用多个Socket连接多个云终端控制器的需求. 由于终端数量大,就对整个中央控制器提出了并发的要求,然而获取Socket响应的过程是一个持续阻塞的过程,存在性能风险.而常 ...
- 安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制
安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制 socket 连接采用流的方式进行发送接收数据,采用thread线程的方式. 什么是线程? 详细代码介 ...
- C# Socket连接 无法访问已释放的对象
在进行Socket长连接时,若服务器或客户端出现异常时,另外一端对Socket对话进行操作时,程序会出现无法访问已释放的对象的问题.例如客户端出现问题主动断开Socket时,当服务器操作Socket时 ...
- 对于.NET Socket连接的细节记录
如果客户端直接连接一个不存在的服务器端,客户端会抛出异常: 如果在连接过程中,客户端强制关闭了连接(没有调用Close直接关闭了程序),服务器端会抛出异常: 如果在连接过程中,客户端调用了Close, ...
- linux socket连接中 ERRNO错误
Connection refused:应该是连接的服务端没有启动或者连接端口错误,可以用如下代码测试 client端: #include <stdio.h> #include <sy ...
- tomcat通过socket连接MySQL,不再占用服务端口【linux】
MySQL连接方式的说明 http://icbm.iteye.com/blog/1840673 MySQL除了最常见的TCP连接方式外,还提供SOCKET(LINUX默认连接方式).PIPE和SHAR ...
- 比较 http连接 vs socket连接
http连接 :短连接,客户端,服务器三次握手建立连接,服务器响应返回信息,连接关闭,一次性的socket连接:长连接,客户端,服务器三次握手建立连接不中断(通过ip地址端口号定位进程)及时通讯,客户 ...
- UrlConnection连接和Socket连接的区别
关于UrlConnection连接和Socket连接的区别,只知道其中的原理如下: 抽象一点的说,Socket只是一个供上层调用的抽象接口,隐躲了传输层协议的细节. urlconnection 基于H ...
- 转 Cocos网络篇[3.2](3) ——Socket连接(1)
Cocos网络篇[3.2](3) ——Socket连接(1) 2015-03-05 22:24:13 标签:network http socket cocos [唠叨] 在客户端游戏开发中,使用HTT ...
随机推荐
- windows phone (12) 小试自定义样式
原文:windows phone (12) 小试自定义样式 样式在BS开发中经常用到,在wp中系统也提供了解决办法,就是对设置的样式的一种资源共享,首先是共享资源的位置,它是在App类中,之前我们已经 ...
- 解决alaert.builder二次调用报错的bug
报错的代码是: The specified child already has a parent. You must call removeView() on the child's parent f ...
- Android 调试native的crash和anr
1. 于trace找到相应的库.例如 liba.so和相应的地址信息 2. 采用addr2line 查看 addr2line 住址 -e liba.so -f 要么 arm-eabi-addr2lin ...
- Linux学习记录--命名管道通信
命名管道通信 什么是命名管道 一个主要的限制是,它是匿名管道的应用还没有名字,因此,只有它可以用于进程间通信的方式与亲缘关系.在命名管道(named pipe或FIFO)提出后,该限制得到了克服.FI ...
- 【SICP读书笔记(四)】练习2.27 --- 表序列reverse的扩展:树结构的deep-reverse
题目要求是,修改练习2.18所做的reverse过程,得到一个deep-reverse过程.它以一个表为参数,返回另一个表作为值,结果表中的元素反转过来,其中的子树也反转. 例如: (define x ...
- ssh否password登陆server
在线辅导课非常多,但仍录,使用时方便日后查询. 两server,内联网ip每间: 172.16.3.91 (本地计算机) 172.16.3.92 (远程机) 现在想在本地计算机上通过ssh 172.1 ...
- 开源 自由 java CMS - FreeCMS1.9 分纪录
项目地址:http://www.freeteam.cn/ 2.4.1 积分记录 查看系统全部会员积分记录. 从左側管理菜单点击积分记录进入. 版权声明:本文博客原创文章,博客,未经同意,不得转载.
- Lua相关的知识
http://stackoverflow.com/questions/5438751/how-to-debug-lua-remotely http://cn.bing.com/search?q=org ...
- 三——第二部分——第二篇论文 计划建设SQL Server镜像
本文接着前面的章节:SQL Server镜像简单介绍 本文出处:http://blog.csdn.net/dba_huangzj/article/details/27203053 俗话说:工欲善其事必 ...
- Hdu-1565 电网接入(1) (国家压缩dp获得冠军
正方形格通路(1) Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...