using System.Collections; 
 | 
using System.Collections.Generic; 
 | 
using UnityEngine; 
 | 
using System; 
 | 
using System.Text; 
 | 
using System.IO; 
 | 
  
 | 
public class NetPkgCtl 
 | 
{ 
 | 
    private static List<NetPackage> packages = new List<NetPackage>(); //发送接收封包存储列表 
 | 
    private static List<NetPackage> tempPackages = new List<NetPackage>();//暂停时缓存的封包列表 
 | 
    public static bool stopRecieve = false; 
 | 
  
 | 
    public static void RecordPackage(ServerType socketType, string bytes, NetPackagetType packType, string packageName, string fields, List<string> fieldDetails) 
 | 
    { 
 | 
#if UNITY_EDITOR 
 | 
        var package = new NetPackage(); 
 | 
        package.socketType = socketType; 
 | 
        package.time = DateTime.Now.ToString("HH:mm:ss:fff"); 
 | 
        package.type = packType; 
 | 
  
 | 
        if (string.IsNullOrEmpty(packageName)) 
 | 
        { 
 | 
            package.content = bytes.Replace(",", " "); 
 | 
            var byteStr = package.content.Split(' '); 
 | 
            if (byteStr.Length > 1) 
 | 
            { 
 | 
                package.name = StringUtility.Contact("H", byteStr[0], byteStr[1], "(未注册)"); 
 | 
            } 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            package.content = bytes.Replace(",", " "); 
 | 
            package.name = packageName; 
 | 
            package.fields = fields; 
 | 
            package.fieldDetails = fieldDetails; 
 | 
        } 
 | 
  
 | 
        if (!stopRecieve) 
 | 
        { 
 | 
            packages.Add(package); 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            tempPackages.Add(package); 
 | 
        } 
 | 
#endif 
 | 
    } 
 | 
  
 | 
    public static List<NetPackage> GetPackages() 
 | 
    { 
 | 
        return packages; 
 | 
    } 
 | 
  
 | 
    public static List<NetPackage> GetTempPackages() 
 | 
    { 
 | 
        return tempPackages; 
 | 
    } 
 | 
  
 | 
    public static void WriteAllNetLog(bool @details) 
 | 
    { 
 | 
        if (packages != null) 
 | 
        { 
 | 
            var count = 0; 
 | 
            var lines = new List<string>(); 
 | 
            for (int i = packages.Count - 1; i >= 0; i--) 
 | 
            { 
 | 
                if (count > 20000) 
 | 
                { 
 | 
                    break; 
 | 
                } 
 | 
  
 | 
                var package = packages[i]; 
 | 
                var line = string.Empty; 
 | 
                line = StringUtility.Contact(package.type == NetPackagetType.Client ? "【发送】\t" : "【接收】\t", package.time, ":", package.name, @details ? "\r\n" : "-->" + package.fields); 
 | 
  
 | 
                if (@details && package.fieldDetails != null) 
 | 
                { 
 | 
                    for (int j = 0; j < package.fieldDetails.Count; j++) 
 | 
                    { 
 | 
                        line = StringUtility.Contact(line, "\t\t\t", package.fieldDetails[j], "\r\n"); 
 | 
                    } 
 | 
                } 
 | 
  
 | 
                lines.Add(line); 
 | 
                count++; 
 | 
            } 
 | 
  
 | 
            File.WriteAllLines(Application.dataPath + "/PackageLogs_" + (@details ? "details" : "abstract") + "_" + DateTime.Now.ToString("HH_mm_ss") + ".txt", lines.ToArray()); 
 | 
        } 
 | 
    } 
 | 
} 
 | 
  
 | 
public class NetPackage 
 | 
{ 
 | 
    public ServerType socketType; 
 | 
    public bool show = false; 
 | 
    public string time; 
 | 
    public string serverTime; 
 | 
    public string content; 
 | 
    public string name; 
 | 
    public NetPackagetType type; 
 | 
    public string fields; 
 | 
    public List<string> fieldDetails; 
 | 
} 
 | 
  
 | 
public enum NetPackagetType 
 | 
{ 
 | 
    Client = 1, 
 | 
    Server = 2, 
 | 
    All = 3, 
 | 
} 
 |