tcp逻辑调整,历史逻辑增加赛事相关派生类

This commit is contained in:
lishuo committed 2021-07-01 18:41:35 +08:00
1 parent ec45246aa4
commit d6a7cd798f
41 files changed
+5420 -3128

No files matched your search

@@ -3,6 +3,8 @@ using Assets.Scripts;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Net;
using System.Net.Sockets;
@@ -79,6 +81,7 @@ namespace Assets.Scenes.Ride.Scripts.Network
protected override void OnConnected()
{
base.OnConnected();
MapUDPService.SendGizpModel();
}
protected override void OnDisconnected()
@@ -93,24 +96,59 @@ namespace Assets.Scenes.Ride.Scripts.Network
}
}
public string Decompress(byte[] data)
{
// Read the last 4 bytes to get the length
byte[] lengthBuffer = new byte[4];
Array.Copy(data, data.Length - 4, lengthBuffer, 0, 4);
int uncompressedSize = BitConverter.ToInt32(lengthBuffer, 0);
var buffer = new byte[uncompressedSize];
using (var ms = new MemoryStream(data))
{
using (var gzip = new GZipStream(ms, CompressionMode.Decompress))
{
gzip.Read(buffer, 0, uncompressedSize);
}
}
return Encoding.UTF8.GetString(buffer);
}
private string temp = "";
protected override void OnReceived(byte[] buffer, long offset, long size)
{
//base.OnReceived(buffer, offset, size);
var returnData = Encoding.UTF8.GetString(buffer, (int)offset, (int)size);
//Debug.WriteLine("收到:" + returnData+"\r\n");
//System.IO.File.AppendAllText(System.Environment.CurrentDirectory + "接收到的数据.txt", returnData.Trim().Replace("\0", "")+"\r\n", Encoding.UTF8);
var list = new List<ReceiveMsgModel>();
var itemList = returnData.Split('|');
foreach (var item in itemList)
//*sdfsd#*sdfsd#*sdfsd#*sdfsd#
foreach (var item in returnData)
{
var info = ReceiveMsgModel.Parse(item);
if (info != null)
if (item != '*' && item != '#')
{
list.Add(info);
temp += item;
}
if (item == '#')
{
//解压 temp
var uncompressStr = Decompress(Convert.FromBase64String(temp));
var list = new List<ReceiveMsgModel>();
var itemList = uncompressStr.Split('|');
temp = "";
foreach (var obj in itemList)
{
var info = ReceiveMsgModel.Parse(obj);
if (info != null)
{
list.Add(info);
}
}
_action(list);
}
}
_action(list);
//Debug.WriteLine("收到:" + returnData+"\r\n");
//System.IO.File.AppendAllText(System.Environment.CurrentDirectory + "接收到的数据.txt", returnData.Trim().Replace("\0", "")+"\r\n", Encoding.UTF8);
}
protected override void OnError(SocketError error)