在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.cs的ReceiveCb方法调用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);
//广播