- 最后登录
- 2019-12-2
- 注册时间
- 2012-8-25
- 阅读权限
- 90
- 积分
- 34660
- 纳金币
- 38268
- 精华
- 111
|
包含成员socket 连接客户端的socket对象
message 此连接当前接收消息对象
messageCache 接收消息缓存 在第三季中因为考虑到客户端发送的消息一般不会很大 所以可有可无 没有实际意义 此对象是考虑粘包的情况下 进行消息缓存 以便解析
包含方法
write 用于给此连接发送消息- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Net;
- using System.Net.Sockets;
- namespace GameServer.NetModel
- {
- class Session
- {
- public Socket socket { get; set; }
- public byte[] message { get; set; }
- <pre class="brush:csharp;auto-links:false;"><span class="Apple-tab-span" style="white-space:pre"> </span>public List<byte> messageCache { get; set; }</pre>
- public Session() {
- message = new byte[1024 * 4];
- }
- public void write(int type,int area,int command,Object message) {
- SocketModel model = new SocketModel(type, area, command, null);
- if (message != null)
- {
- model.Message= coding.Coding<Object>.encode(message);
- }
- int length = 16;
- if (model.Message != null)
- {
- length += model.Message.Length;
- }
- ByteArray arr = new ByteArray();
- arr.WriteInt(length);
- arr.WriteInt(model.Type);
- arr.WriteInt(model.Area);
- arr.WriteInt(model.Command);
-
- if (model.Message != null)
- {
- length += model.Message.Length;
- arr.WriteInt(model.Message.Length);
- arr.WriteUTFBytes(model.Message);
- }
- else {
- arr.WriteInt(0);
- }
- socket.Send(arr.Buffer);
- }
- }
- }
复制代码 |
|