tcp逻辑调整,历史逻辑增加赛事相关派生类
This commit is contained in:
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)
|
||||
|
||||
Reference in new issue
Block a user