杂类知识
1、位运算符
他是以2进制进行计算,假设如果 A = 60,且 B = 13,现在以二进制格式表示,它们如下所示:
A = 0011 1100
B = 0000 1101
(1)“&”是1与1=1,1与0=0,0与0=0,A&B=0000 1100
(2)“|”是1与1=1,1与0=1,0与0=0,A|B=0011 1101
(3)“^”是1与1=0,1与0=1,0与0=0,A“ ^”B=0011 0001
(4)“~”是按位取反运算符是一元运算符,具有"翻转"位效果,即0变成1,1变成0,包括符号位。
~A=1100 0011
(5)"<<“二进制左移运算符。左操作数的值向左移动右操作数指定的位数。A<<2=1111 0000(<<2左移两次,10进制效果为*2乘了两次,取整)
(6)”>>"二进制右移运算符。左操作数的值向右移动右操作数指定的位数。A>>2=0000 1111(>>2右移两次,10进制效果为/2除了两次)
2、树结构遍历
https://www.cnblogs.com/isabelle/articles/isabellezhou.html
Unity
1、项目从2018升级到2019找不到UnityEngine.UI程序集引用,可以去项目文件夹packages里配置文件看有没有引用,如果没有可以打开Window→PackageManager(好像在2019.3.xx以后就没在UnityEngine里,而是单独分出去了)
C#
1、http方法使用
WebRequest(时代的眼泪)
链接: 参考链接.
//请求路径
string url = "http://localhost:7070/notification.do";
//定义request
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
//定义请求方式
request.Method = "POST";
//初始化request参数
string postData = "action=send&broadcast=Y&uri=112332&username=f8df247d0b2b4277b122f68c94c2caab";
postData += "&title=C#发送后台请求";
postData += "&message=利用C#后台向androidpnserver发送HTTP请求实现客户端的消息推送功能。";
//设置参数的编码格式,解决中文乱码
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
//设置request的MIME类型及内容长度
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;
//打开request字符流
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
//定义response为前面的request响应
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//获取相应的状态代码
Console.WriteLine(response.StatusDescription);
//定义response字符流
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();//读取所有
Console.WriteLine(responseFromServer);
//关闭资源
reader.Close();
dataStream.Close();
response.Close();
HttpClient
1、Post
//不用反复生成,生成一次就行
HttpClient client = new HttpClient();
//目标主机
string host = $"http://192.168.0.86:20000/game98/logic";
//Get参数
Dictionary<string, string> paramDic = new Dictionary<string, string>();
paramDic.Add("command", "hotfix");
paramDic.Add("version", @"E:\workspace\HGame\server\trunk\Server2.0\newDll");
var tick = DateTime.Now.Ticks.ToString();
paramDic.Add("timeTick", tick);
paramDic.Add("token", "根据不同情况填写");
//编辑url地址
string url = host + "?";
int idx = 0;
foreach (var kv in paramDic)
{
url += kv.Key;
url += "=";
url += kv.Value;
if (idx < paramDic.Count - 1)
{
url += "&";
}
idx++;
}
//发送Get请求
try
{
HttpResponseMessage res = await client.GetAsync(url);
res.ToString();
}
catch (Exception e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ", e.Message);
}
2、Post
//不用反复生成,生成一次就行
HttpClient client = new HttpClient();
//编辑url地址
string url = $"http://192.168.0.86:20000/game98/logic";
//Post参数
string str = "";
str += string.Format("&command={0}", "hotfix");
str += (string.Format("&version={0}", @"E:\workspace\HGame\server\trunk\Server2.0\newDll"));
string tick = DateTime.Now.Ticks.ToString();
str += string.Format("&timeTick={0}", tick);
string token = "根据不同情况填写";
str += string.Format("&token={0}", token);
StringContent httpContent = new StringContent(str, Encoding.UTF8);
//内容类型
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
//发送Post请求
try
{
HttpResponseMessage respone = await client.PostAsync(url, httpContent);
if (respone.IsSuccessStatusCode)
{
string res = respone.Content.ReadAsStringAsync().Result;
JSONClass json = JSONClass.Parse(res) as JSONClass;
if (json != null)
{
string resCode = json["result"].Value;
}
}
}
catch (Exception e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ", e.Message);
}