private static void Server_UserDisconnect(ZYSocket.ZYNet.ZYNetSession session) { var x = session?.Asyn?.AcceptSocket?.RemoteEndPoint; if (x != null) { Console.WriteLine(x.ToString() + " Disconnect"); session.UserToken = null; } }
private static void Server_UserDataInput(ZYSocket.ZYNet.ZYNetSession session, byte[] data) { ReadBytes read = new ReadBytes(data); int lengt; int cmd; if (read.ReadInt32(out lengt) && read.ReadInt32(out cmd) && read.Length == lengt) { switch (cmd) { case 1000: { LogOn logon; if (read.ReadObject <LogOn>(out logon)) { UserInfo tmp = new UserInfo() { Name = logon.UserName, Session = session }; session.UserToken = tmp; UserList.Add(tmp); logon.Success = true; Server.SendDataToClient(session, BufferFormat.FormatFCA(logon)); Console.WriteLine(tmp.Name + "登入"); } } break; case 2000: { if (session.UserToken == null) { return; } DrawPoint tmp; if (read.ReadObject <DrawPoint>(out tmp)) { if (Map == null) { Map = new Bitmap(848, 609); gs = Graphics.FromImage(Map); } Brush br = new SolidBrush(Color.FromArgb(tmp.Color)); gs.FillEllipse(br, tmp.X, tmp.Y, 2, 2); gs.Flush(); gs.Save(); } } break; case 3000: { if (session.UserToken == null) { return; } ClecrColor tmp; if (read.ReadObject <ClecrColor>(out tmp)) { gs.Clear(Color.FromArgb(tmp.Color)); gs.Flush(); gs.Save(); } } break; case 4000: { if (session.UserToken == null) { return; } SaveImg tmp; if (read.ReadObject <SaveImg>(out tmp)) { string path = (new System.IO.FileInfo(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName)).Directory.FullName + "\\SAVE\\"; if (!System.IO.Directory.Exists(path)) { System.IO.Directory.CreateDirectory(path); } Map.Save(path + tmp.FileName); } } break; } } }