コード例 #1
0
        private static async void SignUp(TcpConnection con, NetMessage message)
        {
            string[] data = message.Data as string[];
            WriteLog(con, "{0} 尝试注册", data[0]);
            bool success = await API.SignUpAsync(data[0], API.Encrypt(data[1]));

            NetMessage mess;

            if (success)
            {
                WriteLog(con, "{0} 注册成功", data[0]);
                mess = GetSuccessMessage();
            }
            else
            {
                WriteLog(con, "{0} 注册失败", data[0]);
                mess = GetFailMessage();
            }
            try
            {
                await con.Send(mess);
            }
            catch (Exception)
            {
                con.Close();
                return;
            }
            con.Close();
        }
コード例 #2
0
        private static async void AddFavorite(TcpConnection con, NetMessage message)
        {
            string[] str   = message.Data as string[];
            string   uname = str[0];
            string   md5   = str[1];

            WriteLog(con, "{0}尝试添加收藏{1}", uname, md5);
            bool sus = await API.AddFavoriteAsync(uname, md5);

            NetMessage mess;

            if (sus)
            {
                WriteLog(con, "{0}尝试添加收藏成功", uname);
                mess = GetSuccessMessage();
            }
            else
            {
                WriteLog(con, "{0}尝试添加收藏失败", uname);
                mess = GetFailMessage();
            }
            try
            {
                await con.Send(mess);
            }
            catch (Exception)
            {
                con.Close();
            }
            con.Close();
        }
コード例 #3
0
        private static async void CheckMD5(TcpConnection con, NetMessage message)
        {
            string md5 = message.Data as string;

            WriteLog(con, "尝试检查MD5值:{0}", md5);
            bool success = await API.CheckMD5Async(md5);

            NetMessage mess;

            if (!success)
            {
                WriteLog(con, "不存在MD5值:{0}", md5);
                mess = GetSuccessMessage();
            }
            else
            {
                WriteLog(con, "MD5值已存在:{0}", md5);
                mess = GetFailMessage();
            }
            try
            {
                await con.Send(mess);
            }
            catch (Exception)
            {
                con.Close();
                return;
            }
            con.Close();
        }
コード例 #4
0
        private static async void AddMusic(TcpConnection con, NetMessage message)
        {
            //byte[] file = message.Data as byte[];
            MusicFile file = message.Data as MusicFile;
            string    md5  = GetMusicMD5(file.file);

            WriteLog(con, "用户 {0} 尝试上传音乐 {1}-{2}{3}:{4}", file.uname, file.singer, file.name, file.suffix, md5);
            bool success = await API.AddMusicAsync(file.name, file.singer, file.suffix, md5, file.uname);

            NetMessage mess;

            if (success)
            {
                string filename = string.Format("{0}{1}{2}", path, md5, file.suffix);
                bool   success2 = SaveFile(filename, file.file);
                if (success2)
                {
                    WriteLog(con, "上传音乐成功,保存为{0}", filename);
                    mess = GetSuccessMessage();
                }

                else
                {
                    WriteLog(con, "保存文件失败");
                    mess = GetFailMessage();
                }
            }
            else
            {
                WriteLog(con, "上传音乐失败");
                mess = GetFailMessage();
            }
            try
            {
                await con.Send(mess);
            }
            catch (Exception)
            {
                con.Close();
                return;
            }
            con.Close();
        }
コード例 #5
0
        private static async void GetFavoriteList(TcpConnection con, NetMessage message)
        {
            string uname = message.Data as string;

            WriteLog(con, "{0}尝试获取收藏列表", uname);
            DataSet set = await API.GetFavoriteList(uname);

            NetMessage mess;

            if (set == null)
            {
                WriteLog(con, "{0}获取收藏列表失败", uname);
                mess = GetFailMessage();
            }
            else
            {
                WriteLog(con, "{0}获取收藏列表成功", uname);
                MusicInfo[] info = new MusicInfo[set.Tables[0].Rows.Count];
                for (int i = 0; i != set.Tables[0].Rows.Count; ++i)
                {
                    info[i] = new MusicInfo();
                    object[] objs = set.Tables[0].Rows[i].ItemArray;
                    info[i].name   = objs[0] as string;
                    info[i].singer = objs[1] as string;
                    string url = outpath + objs[3] + objs[2];
                    info[i].url         = url;
                    info[i].playedtimes = (int)objs[4];
                    info[i].uname       = objs[5] as string;
                }
                mess = GetGetListSuccessMessage(info);
            }
            try
            {
                await con.Send(mess);
            }
            catch
            {
                con.Close();
                return;
            }
            con.Close();
        }
コード例 #6
0
        private static async void MusicPlayed(TcpConnection con, NetMessage message)
        {
            string md5 = message.Data as string;

            WriteLog(con, "{0}被播放", md5);
            bool sus = await API.MusicPlayed(md5);

            if (sus)
            {
                WriteLog(con, "{0}增加播放量成功", md5);
            }
            else
            {
                WriteLog(con, "{0}增加播放量失败", md5);
            }
            con.Close();
        }
コード例 #7
0
ファイル: ServerMain.cs プロジェクト: yuyyi51/NethardMusic
        static async void AcceptMessage(TcpConnection con)
        {
            object obj;

            try
            {
                obj = await con.ReceiveOnceAsync();
            }
            catch (Exception e)
            {
                //Console.Out.WriteLine("tag1");
                Console.Out.WriteLine(DateTime.Now.ToString() + " " + e.Message);
                con.Close();
                return;
            }
            if (obj == null)
            {
                Console.Out.WriteLine(DateTime.Now.ToString() + " " + "非指定程序的连接");
                con.Close();
                return;
            }
            NetMessage message = null;

            try
            {
                message = obj as NetMessage;
            }
            catch (Exception e)
            {
                Console.Out.WriteLine(DateTime.Now.ToString() + " " + e.Message);
                con.Close();
                return;
            }
            try
            {
                switch (message.Message)
                {
                case MessageType.SignIn:
                    SignIn(con, message);
                    break;

                case MessageType.SignUp:
                    SignUp(con, message);
                    break;

                case MessageType.GetList:
                    GetMusicList(con, message);
                    break;

                case MessageType.CheckMD5:
                    CheckMD5(con, message);
                    break;

                case MessageType.Upload:
                    AddMusic(con, message);
                    break;

                case MessageType.MusicPlayed:
                    MusicPlayed(con, message);
                    break;

                case MessageType.AddFavorite:
                    AddFavorite(con, message);
                    break;

                case MessageType.GetFavoriteList:
                    GetFavoriteList(con, message);
                    break;

                default:
                    break;
                }
            }
            catch (Exception e)
            {
                Console.Out.WriteLine(DateTime.Now.ToString() + " " + con.ToString() + " " + e.Message);
                con.Close();
                return;
            }
        }