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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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; } }