SocketAsyncEventArgs
2016-08-14 15:56
28 查看
独立开发的游戏服务器端敲完了(告别BUG!!!!) 写个博客(总结)出来
介绍(大概都知道
) SocketAsyncEventArgs是.NET Framework 3.5出的
SocketAsyncEventArgs常用的成员
Buffer
BytesTransferred
SocketError
UserToken
BytesTransferred
SetBuffer
Completed
///////////只列出了主要方法~
Accept监听
介绍(大概都知道
) SocketAsyncEventArgs是.NET Framework 3.5出的
SocketAsyncEventArgs常用的成员
Buffer
BytesTransferred
SocketError
UserToken
BytesTransferred
SetBuffer
Completed
///////////只列出了主要方法~
Accept监听
bool b= socket.AcceptAsync(e); if (!b) { //注意这里要上锁 lock(e) { ProcessAccept(e); } }
Receive监听
<pre name="code" class="csharp">bool b= userToken.connect.ReceiveAsync(userToken.ReceiveEventArgs); if (!b) { lock (userToken) //这里也要加锁 { ProcessReceive(userToken.ReceiveEventArgs); } }
<pre name="code" class="csharp">//判断网络消息接收是否成功 if (userToken.ReceiveEventArgs.BytesTransferred > 0 && userToken.ReceiveEventArgs.SocketError == SocketError.Success) { //...处理消息和再次开启消息监听 }
IO_Completed
<pre name="code" class="csharp">lock (userToken) { if (e.LastOperation == SocketAsyncOperation.Receive) { ProcessReceive(e); } else if (e.LastOperation == SocketAsyncOperation.Send) { ProcessSend(e); } }
Send
<pre name="code" class="csharp">sendSAEA.SetBuffer(buff, 0, buff.Length); bool result = connect.SendAsync(sendSAEA); if (!result) { sendProcess(sendSAEA);//这里只是个回调 } //之前在插入数据的时候我也上锁了 否则会数据混乱 尴尬...
<img alt="得意" src="http://static.blog.csdn.net/xheditor/xheditor_emot/default/proud.gif" />
相关文章推荐
- java-模拟tomcat服务器
- Linux socket 初步
- 小心服务器内存居高不下的元凶--WebAPI服务
- android wifi 无线调试
- 运维入门
- 利用开源软件打造自己的全功能远程工具
- Linux5.9无人值守安装
- 数据中心和云未来的十二大趋势
- 虚拟化基础架构Windows 2008篇之10-使用WDS安装Windows 7
- 虚拟化基础架构Windows 2008篇之11-WSUS服务器的安装与配置
- 用vsftp快速搭建ftp服务器
- Linux快速构建apache web服务器
- 服务器监控策略浅谈
- java socket 注意的地方
- java socket 注意的地方
- 拨号网络的简单知识
- 菜鸟必看网络名词
- 通晓网络测试常用命令