Serv.cs添加HandleMsg方法

    /// <summary>
    /// 数据处理
    /// </summary>
    private static void HandleMsg(Conn conn, string str)
    {
        //获取数据
        if (str == "_GET")
        {
            //select:查询列表中的数据,使用以下形式为:
            //select 列表名称 from 表名称[查询条件]:
            //例:select * from msg where name="小明";
            //后面需要带双引号
            //10遍历查询10条数据
            string cmdStr = "select*from msg order by id desc limit 10;";
            //开始查询数据库
            MySqlCommand cmd = new MySqlCommand(cmdStr, sqlConnection);
            try
            {
                //MySqlDataReader提供了一种从数据集读取数据的方法,在调用Read方法后,
                //dataReader对象指向数据集的下一条记录。如果是最后一条数据,
                //那么Read方法将返回Null。
                MySqlDataReader dataReader = cmd.ExecuteReader();
                str = "";
                //当Read返回Null时跳出循环
                while (dataReader.Read())
                {
                    str += dataReader["name"] + ":" + dataReader["msg"] + "\n\r";
                }
                //关闭数据库
                dataReader.Close();
                //将获取到的数据发送给客户端
                byte[] bytes = Encoding.UTF8.GetBytes(str);
                conn.socket.Send(bytes);
            }
            catch(Exception e)
            {
                Console.WriteLine("数据库查询失败:" + e.Message);
            }
        }
        else
        {
           //insert:将数据插入到数据库的表中,基本形式为:
           //insert[into]表名[列名1,列名2...]values(值1,值2...);
           //列:insert into msg valuse(1,"小明","你好");
           //insert into students("name","msg")valuse("小红","LoveLPY");
            string cmdStrFormat = "insert into msg set name='{0}',msg ='{1}';";
            string cmdStr = string.Format(cmdStrFormat, conn.GetAdress(),str);
            MySqlCommand cmd = new MySqlCommand(cmdStr, sqlConnection);
            try
            {
                cmd.ExecuteNonQuery();
            }
            catch(Exception e)
            {
                Console.WriteLine("数据插入失败:" + e.Message);
            }

        }
    }

Serv.csReceiveCb方法调用HandleMsg方法

 //数据处理
            string str = Encoding.UTF8.GetString(conn.readBuff, 0, count);
            Console.WriteLine("收到 [" + conn.GetAdress() + "] 数据:" + str);
            HandleMsg(conn,str);//这里是调用的方法
            str = conn.GetAdress() + "发送的:" + str;
            byte[] bytes = System.Text.Encoding.UTF8.GetBytes("接收到"+str);
            //广播

第一章:C# Socket编程之绑定IP与端口
下一章:C# Unity3D之Socket服务端

02-08 15:08