服务器流程如下:
1.Program.Main()->
2.ServerStart.start()->
3.socket.BeginAccept+ServerStart.AcceptCallBack接收客户端的连接,然后转向处理函数->
暂时还没有测试多开,编译一次挺麻烦的
4.socket.BeginReceive->erverStart.ReceiveCallBack->ServerStart.readMessage多次出现函数自己套自己的,网络编程没什么大惊小怪的。readMessage按照socketModel结构读取数据。这样就和之前客户端的知识
cs
public class SocketModel
{
public int Type;
public int Area;
public int Command;
public string Message;
}
5.readMessage->LogicHandler.getInstance().process按Type分类给不同的函数再去做进一步的处理,,分别进入xxxHandler。总体看似挺麻烦的,其实已经很明朗了。process的内容如下:
cs
public void process(Session session, SocketModel model)
{
try
{
switch (model.Type)
{
case 0:
LoginHandler.getInstance().process(session, model);
break;
case 1:
MapHandler.getInstance().process(session, model);
break;
case 2:
UserHandler.getInstance().process(session, model);
break;
}
}
catch (Exception ex)
{
//MyLog.form.textAdd(ex.Message);
Console.WriteLine(ex.Message);
}
}
到此为止服务器终于可以告一段落了。