Socket.BeginConnect 方法

Socket.BeginConnect 方法 (IPAddress,?Int32,?AsyncCallback,?Object)

开始一个对远程主机连接的异步请求。 主机由 IPAddress 和端口号指定。

命名空间:   System.Net.Sockets

1 [HostProtectionAttribute(SecurityAction.LinkDemand, ExternalThreading = true)]
2 public IAsyncResult BeginConnect(
3     IPAddress address,
4     int port,
5     AsyncCallback requestCallback,
6     object state
7 )

异步 BeginConnect 操作必须通过调用 EndConnect 方法。 通常情况下,由调用该方法 requestCallback 委托。

此方法不会阻止,直到该操作已完成。

AsyncCallback 委托

引用在相应异步操作完成时调用的方法。

命名空间:   System

1 [SerializableAttribute]
2 [ComVisibleAttribute(true)]
3 public delegate void AsyncCallback(
4     IAsyncResult ar
5 )

Type: System.IAsyncResult

异步操作的结果。

IAsyncResult 接口

表示异步操作的状态。

命名空间:   System

1 [ComVisibleAttribute(true)]
2 public interface IAsyncResult

IAsyncResult 接口由包含可异步操作的方法的类实现。 它是启动异步操作,如的方法的返回类型 FileStream.BeginRead, ,而且它传递到方法,结束异步操作,如 FileStream.EndRead。 IAsyncResult 对象还传递给调用的方法 AsyncCallback 委托的异步操作完成时。

支持的对象, IAsyncResult 接口存储一个异步操作的状态信息,并提供一个同步对象,以使线程能够在操作完成时发出信号。

时间: 2024-07-30 20:31:32

Socket.BeginConnect 方法的相关文章

ovs-ofctl:s1 is not a bridge or a socket 解决方法

ovs-ofctl: s1 is not a bridge or a socket 解决方法 在使用旧版本的ovs的时候,使用ovs-ofctl命令配置交换机时会出现: ovs-ofctl: s1 is not a bridge or a socket 问题,解决方法是配置交换机的数据路径类型: $ ovs-vsctl set bridge br0 datapath_type=netdev 作者:Wasdns 出处:https://www.cnblogs.com/qq952693358/p/71

python close()是假象,真正关闭Socket的方法

背景: 工作中自己用python写了一个tcp工具,然后用while循环一直接收消息,并且打印出来.然后正常close发现设备并没有离线,然后用了临时的规避方案,发现其实是一直阻塞在recv()接收方法里面,只要传输一条协议,让recv()吃到消息即可正常运行while来让其break退出,但是这种规避方式是临时的,治病要治其根,所以对现在socket进行了研究. 问题原因: 虽然已经将连接close掉了,但是client端仍然可以顺利的接收到消息,而且,如果client端发送数据的间隔小于超时

socket 实例化方法

s.bind(address)将套接字绑定到地址.address地址的格式取决于地址族.在AF_INET下,以元组(host,port)的形式表示地址. s.listen(backlog) 开始监听传入连接.backlog指定在拒绝连接之前,操作系统可以挂起的最大连接数量.该值至少为1,大部分应用程序设为5就可以了. s.connect(address) 连接到address处的套接字.一般,address的格式为元组(hostname,port),如果连接同一台机器上的服务器,可以将hostn

服务器中判断客户端socket断开连接的方法

1, 如果服务端的Socket比客户端的Socket先关闭,会导致客户端出现TIME_WAIT状态,占用系统资源. 所以,必须等客户端先关闭Socket后,服务器端再关闭Socket才能避免TIME_WAIT状态的出现. 2, 在linux下写socket的程序的时候,如果尝试send到一个disconnected socket上,就会让底层抛出一个SIGPIPE信号. client端通过 pipe 发送信息到server端后,就关闭client端, 这时server端,返回信息给 client

详谈socket请求Web服务器过程(转)

最开始我们需要明白一件事情,因为这是这篇文章的前提: HTTP协议只是一个应用层协议,它底层是通过TCP进行传输数据的.因此,浏览器访问Web服务器的过程必须先有“连接建立”的发生. 而有人或许会问:众所周知,HTTP协议有两大特性,一个是“无连接”性,一个是“无状态”性.这里的“无连接”岂不是跟上面的说法有冲突?其实这里并没有矛盾,只是人们对“连接”这个词的理解有差异.首先我们来看一下浏览器向Web服务器发出Http请求以及Web服务器给浏览器回复的过程: 1)浏览器创建Socket,按给定I

.net平台下socket异步通讯

1,首先添加两个windows窗体项目,一个作为服务端server,一个作为客户端Client 2,然后添加服务端代码,添加命名空间,界面上添加TextBox控件 using System.Net; using System.Net.Sockets; 3,FormLoad方法添加代码 private void Form1_Load(object sender, EventArgs e) { IPEndPoint epServer = new IPEndPoint(IPAddress.Parse(

基于C#的socket编程的TCP异步实现

一.摘要 本篇博文阐述基于TCP通信协议的异步实现. 二.实验平台 Visual Studio 2010 三.异步通信实现原理及常用方法 3.1 建立连接 在同步模式中,在服务器上使用Accept方法接入连接请求,而在客户端则使用Connect方法来连接服务器.相对地,在异步模式下,服务器可以使用BeginAccept方法和EndAccept方法来完成连接到客户端的任务,在客户端则通过BeginConnect方法和EndConnect方法来实现与服务器的连接. BeginAccept在异步方式下

详谈socket请求Web服务器过程

最开始我们需要明白一件事情,因为这是这篇文章的前提: HTTP协议只是一个应用层协议,它底层是通过TCP进行传输数据的.因此,浏览器访问Web服务器的过程必须先有“连接建立”的发生. 而有人或许会问:众所周知,HTTP协议有两大特性,一个是“无连接”性,一个是“无状态”性.这里的“无连接”岂不是跟上面的说法有冲突?其实这里并没有矛盾,只是人们对“连接”这个词的理解有差异.首先我们来看一下浏览器向Web服务器发出Http请求以及Web服务器给浏览器回复的过程: 1)浏览器创建Socket,按给定I

网络编程之Socket异步编程

看了上篇socket入门,相信你已经对socket有一定的了解了http://www.cnblogs.com/nsky/p/4501782.html 现在来回顾一下.上篇在循环接收客户端连接和循环接收消息的两个方法.都使用了多线程,因为Accept()方法是同步的,所有用了多线程异步执行. 1 static void Main(string[] args) 2 { 3 string ip = "192.168.1.2"; 4 int points = 8000; 5 6 Socket