异步Socket编程III

Socket客户端应用程序

Socket客户端应用程序在SocketClient类中实现(文件名为SocketClient.cs)。与服务器的主socket

和一组工作Socket不同,在这里,只需要一个Socket对象(m_clientSocket)。

在Socket客户端的Socket类中,有两个重要的方法Connect()和BeginReceive()。Connect()是一个同步通讯方法,在连接到监听客户端连接的服务器时调用。由于这个调用会根据是否有活跃的服务器监听指定IP和端口,及时的反映连接成功与否,因此,使用同步方法比较恰当。

一旦连接建立,会调用BeginReceive()异步通讯方法,等待服务器在Socket中写入数据。在这里,如果换做调用同步方法,那么,在客户端应用程序上的主线程会阻塞,并且,在等待服务器数据时,无法向其发送任何数据。

当有来自服务器端的写活动时,由BeginReceive()触发的内部线程会调用回调函数(以“OnDataReceived()”为例),该回调函数会处理由服务器写入的数据。

当向服务器发送数据时,只需要在m_clientSocket对象中调用Send()方法,该同步通讯方法将数据写入Socket中。

这便是多台客户端的异步Socket通讯。

 异步Socket程序代码

异步Socket程序

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值