基于TCP协议的异步通讯(c#)
1.建立连接:
在同步模式中,我们在服务器上使用Accept方法接入连接请求,而在客户端我们则使用Connect方法来连接服务器。相对地,在异步模式下,服务器可以使用BeginAccept方法和EndAccept方法来完成连接到客户端的任务,在客户端则通过BeginConnect方法和EndConnect方法来实现与服务器的连接。
BeginAccept在异步方式下传入的连接尝试,它允许其他动作而不必等待连接建立才继续执行后面程序在调用BeginAccept之前,必须使用Listen方法来侦听是否有连接请求,等待他把请求放入消息队列中参数列表为:
BeginAccept(AsyncCallBack, Ojbect state)
AsyncCallBack:代表回调函数
state:表示状态信息,必须保证state中包含socket的句柄
而在回调方法中应调用EndAccept()方法来完成操作,该方法返回新的套接字对象,并在以后的通信中可以使用该套接字。其基本流程是:
(1)创建本地终节点,并新建套接字与本地终节点进行绑定;
(2)在端口上侦听是否有新的连接请求;
(3)请求开始接入新的连接,传入Socket的实例或者StateOjbect的实例
代码
//定义IP地址
IPAddress local=IPAddress.Prase("127.0,0,1");
IPEndPoint iep=new IPEndPoint(local,13000);
//创建服务器的socket对象
server=new Socket(AddressFamily.InterNetwork,SocketType.Stream,Proto colType.Tcp)
server.Bind(iep);
server.Listen(20);
Server.BeginAccecpt(New AsyncCallBack(Accept),server);