纳金网

标题: 服务器开发第二章 连接对象定义 [打印本页]

作者: 狂风大尉    时间: 2014-6-30 16:00
标题: 服务器开发第二章 连接对象定义

包含成员socket 连接客户端的socket对象
message 此连接当前接收消息对象
messageCache 接收消息缓存 在第三季中因为考虑到客户端发送的消息一般不会很大 所以可有可无 没有实际意义 此对象是考虑粘包的情况下 进行消息缓存 以便解析

包含方法
write 用于给此连接发送消息
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Net;
  6. using System.Net.Sockets;

  7. namespace GameServer.NetModel
  8. {
  9.     class Session
  10.     {
  11.         public Socket socket { get; set; }
  12.         public byte[] message { get; set; }
  13. <pre class="brush:csharp;auto-links:false;"><span class="Apple-tab-span" style="white-space:pre">        </span>public List<byte> messageCache { get; set; }</pre>
  14.         public Session() {
  15.             message = new byte[1024 * 4];
  16.         }
  17.         public void write(int type,int area,int command,Object message) {
  18.             SocketModel model = new SocketModel(type, area, command, null);
  19.             if (message != null)
  20.             {
  21.                model.Message= coding.Coding<Object>.encode(message);
  22.             }
  23.             int length = 16;
  24.             if (model.Message != null)
  25.             {
  26.                 length += model.Message.Length;
  27.             }
  28.             ByteArray arr = new ByteArray();
  29.             arr.WriteInt(length);
  30.             arr.WriteInt(model.Type);
  31.             arr.WriteInt(model.Area);
  32.             arr.WriteInt(model.Command);
  33.             
  34.             if (model.Message != null)
  35.             {
  36.                 length += model.Message.Length;
  37.                 arr.WriteInt(model.Message.Length);
  38.                 arr.WriteUTFBytes(model.Message);
  39.             }
  40.             else {
  41.                 arr.WriteInt(0);
  42.             }
  43.             socket.Send(arr.Buffer);
  44.         }
  45.     }
  46. }
复制代码

作者: HIDEOKOJIMA    时间: 2014-6-30 17:26
THanks for sharing !
作者: wucnj    时间: 2014-7-1 10:45
感谢分享!!!
作者: icerein    时间: 2014-7-1 12:45
感谢分享!!!




欢迎光临 纳金网 (http://rs.narkii.com/club/) Powered by Discuz! X2.5