public S2CProtocol(PROTOCOLTYPE type, Socket socket) { this.type = type; this.socket = socket; byteList = new List <byte> { (byte)type }; }
static void Transmit(PROTOCOLTYPE type, byte[] buffer, Socket socket) { C2SProtocol c2SProtocol; switch (type) { case PROTOCOLTYPE.USERPWD: c2SProtocol = new UserPwdProtocol(buffer); c2SProtocol.UnMarshal(); OnUserPwdProtocol(c2SProtocol, socket); break; case PROTOCOLTYPE.REGISTER: c2SProtocol = new RegisterProtocol(buffer); c2SProtocol.UnMarshal(); OnRegisterProtocol(c2SProtocol, socket); break; } }
static void Receive(object o) { Socket socket = o as Socket; while (true) { try { byte[] buffer = new byte[128]; int length = socket.Receive(buffer); if (length == 0) { break; } PROTOCOLTYPE type = (PROTOCOLTYPE)buffer[0]; Transmit(type, buffer, socket); } catch (SocketException e) { Console.WriteLine(e); break; } } }
public C2SProtocol(PROTOCOLTYPE type, byte[] buffer) { this.type = type; this.buffer = buffer; cur = 1; }