GameServer类:
//构造函数
public GameServer() : base(new DefaultReceiveFilterFactory<ClientReceiveFilter, BinaryRequestInfo>())
{
File.WriteAllText("WTUser.txt", "");
}
----------------------------------------------------------------------------------------
Common文件:
Protocal类:
public enum Protocal
{
MyLogin = 8848,
}
-------------------------------------------------------------------------------------
Message文件:
MyLogin类:
using SimpleFramework.Common;
using SimpleFramework.Utility;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SimpleFramework.Message
{
class MyLogin : IMessage
{
public void OnMessage(ClientSession session, ByteBuffer buffer)
{
byte b = buffer.ReadByte();
ProtocalType type = (ProtocalType)b; //协议类型
switch (type)
{
case ProtocalType.BINARY:
OnBinaryMessage(session, buffer);
break;
}
}
private void OnBinaryMessage(ClientSession session, ByteBuffer buffer)
{
string str = buffer.ReadString();
string[] strArr = str.Split(new string[] { "-" }, StringSplitOptions.None);
string type = strArr[0];
string username = strArr[1];
string password = strArr[2];
//注册
if (type == "Reg")
{
FileStream fs = new FileStream("WTUser.txt", FileMode.Append);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine(username + "-" + password);
sw.Flush();
sw.Close();
}
//登陆
if (type == "Login")
{
string[] allLines = File.ReadAllLines("WTUser.txt");
foreach (var item in allLines)
{
string[] itemSplit = item.Split(new string[] { "-" }, StringSplitOptions.None);
string currentUsername = itemSplit[0];
string currentPassword = itemSplit[1];
//Console.WriteLine("Cur = " + currentUsername + ", " + currentPassword);
if (username == currentUsername && password == currentPassword)
{
Console.WriteLine("登陆成功!");
ByteBuffer newBuffer = new ByteBuffer();
newBuffer.WriteByte((byte)ProtocalType.BINARY);
newBuffer.WriteString("LOGINOK");
SocketUtil.SendMessage(session, Protocal.MyLogin, newBuffer);
}
}
}
}
}
}
//构造函数
public GameServer() : base(new DefaultReceiveFilterFactory<ClientReceiveFilter, BinaryRequestInfo>())
{
File.WriteAllText("WTUser.txt", "");
}
----------------------------------------------------------------------------------------
Common文件:
Protocal类:
public enum Protocal
{
MyLogin = 8848,
}
-------------------------------------------------------------------------------------
Message文件:
MyLogin类:
using SimpleFramework.Common;
using SimpleFramework.Utility;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SimpleFramework.Message
{
class MyLogin : IMessage
{
public void OnMessage(ClientSession session, ByteBuffer buffer)
{
byte b = buffer.ReadByte();
ProtocalType type = (ProtocalType)b; //协议类型
switch (type)
{
case ProtocalType.BINARY:
OnBinaryMessage(session, buffer);
break;
}
}
private void OnBinaryMessage(ClientSession session, ByteBuffer buffer)
{
string str = buffer.ReadString();
string[] strArr = str.Split(new string[] { "-" }, StringSplitOptions.None);
string type = strArr[0];
string username = strArr[1];
string password = strArr[2];
//注册
if (type == "Reg")
{
FileStream fs = new FileStream("WTUser.txt", FileMode.Append);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine(username + "-" + password);
sw.Flush();
sw.Close();
}
//登陆
if (type == "Login")
{
string[] allLines = File.ReadAllLines("WTUser.txt");
foreach (var item in allLines)
{
string[] itemSplit = item.Split(new string[] { "-" }, StringSplitOptions.None);
string currentUsername = itemSplit[0];
string currentPassword = itemSplit[1];
//Console.WriteLine("Cur = " + currentUsername + ", " + currentPassword);
if (username == currentUsername && password == currentPassword)
{
Console.WriteLine("登陆成功!");
ByteBuffer newBuffer = new ByteBuffer();
newBuffer.WriteByte((byte)ProtocalType.BINARY);
newBuffer.WriteString("LOGINOK");
SocketUtil.SendMessage(session, Protocal.MyLogin, newBuffer);
}
}
}
}
}
}