/// <summary> /// 将基础类转为BYTE字节 /// </summary> /// <param name="bm"></param> /// <returns></returns> public byte[] Get_Byte(WeaveSession bm) { byte[] b = bm.GetRoot <byte[]>(); byte[] data = new byte[2 + b.Length]; byte[] req = new byte[0]; if (bm.Request == "getdata") { req = ConvertToByteList(256); } if (req.Length == 2) { data[0] = req[0]; data[1] = req[1]; } if (req.Length < 2) { data[0] = 0; data[1] = req[1]; } Array.Copy(b, 0, data, 2, b.Length); return(data); }
public void CheckLogin(Socket soc, WeaveSession wsession) { // string jsonstr = _0x01.Getjson(); LoginTempModel get_client_Send_loginModel = wsession.GetRoot <LoginTempModel>(); //执行查找数据的操作...... bool loginOk = false; AddSystemData(); loginOk = CheckUserCanLoginIn(get_client_Send_loginModel); if (loginOk) { // UpdatePlayerListSetOnLine ServerLoginOKEvent(get_client_Send_loginModel.userName, soc); } SendRoot <bool>(soc, (byte)CommandEnum.ServerSendLoginResult, "ServerBackLoginResult", loginOk, 0, wsession.Token); //发送人数给客户端 //参数1,发送给客户端对象,参数2,发送给客户端对应的方法,参数3,人数的实例,参数4,此处无作用,参数5,客户端此次token }
public void SaveFile(Socket soc, WeaveSession _0x01) { filestream fstream = _0x01.GetRoot <filestream>(); lb0330: if (File.Exists(_0x01.Token + "/" + fstream.Filename + ".tmp")) { System.IO.FileStream fi = System.IO.File.Open(_0x01.Token + "/" + fstream.Filename + ".tmp", FileMode.Open, FileAccess.Write, FileShare.Write); fi.Seek(fstream.Index * 1024 * 4, SeekOrigin.Begin); fi.Write(fstream.Stream, 0, fstream.Len); fi.Close(); var fstate = listfilestate.Where(f => f.Filename == fstream.Filename); foreach (filestate fst in fstate) { fst.Dt = DateTime.Now; fst.State[fstream.Index] = 1; } } else { System.Threading.Thread.Sleep(100); goto lb0330; } }
[InstallFun("forever")]//这是一个接收的方法,注册到了通讯类中 public void getdata(Socket soc, WeaveSession _0x01) { SendRoot <byte[]>(soc, 0x01, "getdata", _0x01.GetRoot <byte[]>(), 0, "随便我没用到"); }
public void check(Socket soc, WeaveSession _0x01) { filestream fstream = _0x01.GetRoot <filestream>(); var fstate = listfilestate.Where(f => f.Filename == fstream.Filename); foreach (filestate fst in fstate) { int sumlen = 0; foreach (byte b in fst.State) { sumlen += b; } if (sumlen >= fst.State.Length) { try { if (fstream.Filetype != "") { if (!Directory.Exists(@trsqfilepath + @"\" + fstream.Filetype)) //如果不存在就创建file文件夹 { Directory.CreateDirectory(@trsqfilepath + @"\" + fstream.Filetype); //创建该文件夹 File.Move(@basepath + @"\" + fst.Path + @"\" + fst.Filename + ".tmp", @trsqfilepath + @"\" + fstream.Filetype + @"\" + fst.Filename); } else { File.Move(@basepath + @"\" + fst.Path + @"\" + fst.Filename + ".tmp", @trsqfilepath + @"\" + fstream.Filetype + @"\" + fst.Filename); } } else { File.Move(@basepath + @"\" + fst.Path + @"\" + fst.Filename + ".tmp", @filepath + @"\" + fst.Filename); } } catch (Exception ex) { { using (StreamWriter sw = new StreamWriter(@basepath + "\\log\\接收.txt")) { sw.WriteLine(ex.ToString()); sw.Close(); } } } try { File.Delete(@basepath + @"\" + fst.Path + @"\" + fst.Filename + ".tmp"); } catch { } listfilestate.Remove(fst); if (!SendRoot <string>(soc, 0x31, "finish", fst.Filename, 0, "finish")) { } return; } else if ((DateTime.Now - fst.Dt).TotalSeconds > 5) { for (int i = 0; i < fst.State.Length; i++) { if (fst.State[i] == 0) { filestream st = new filestream(); st.Filename = fst.Filename; st.Index = i; if (!SendRoot <filestream>(soc, 0x31, "pushdata", st, 0, "pushdata")) { //listfilestate.Remove(fst); //try //{ // File.Delete(@basepath + @"\" + fst.Path + @"\" + fst.Filename + ".tmp"); //} //catch { } return; } } } return; } } if (!SendRoot <string>(soc, 0x31, "finish", fstream.Filename, 0, "finish")) { } }