public void SendAuthRequest(Server server) { Log.Debug("SendAuthRequest"); Packet sp = new Packet(Packet.Opcodes.Auth); sp.AddString(server.AuthKey); _Client.SendPacket(server,sp); }
public void SendNativeFunction(Server server, string guid,string name, string args, DataStream data) { Log.Debug("SendNativeFunction: "+name); Packet sp = new Packet(Packet.Opcodes.FunctionRequest); sp.AddString(guid); sp.AddString(name); // name sp.AddInt32(0); // response sp.AddString(args); sp.AddData(data.Data,data.Length); _Client.SendPacket(server, sp); }
public void SendTest(Server server) { Log.Debug("Sending Test packet"); Packet sp = new Packet(Packet.Opcodes.Test); sp.AddString("TEST"); sp.AddInt32(300); sp.AddByte((byte)32); sp.AddFloat32(1.234F); sp.AddString("TEST2"); _Client.SendPacket(server, sp); }
public void SendPingReply(Server server) { Log.Debug("SendPingReply"); Packet sp = new Packet(Packet.Opcodes.Ping); _Client.SendPacket(server,sp); }
public void WaitReceive(object oserver) { Server server = (Server)oserver; byte[] buf = new byte[Server.MAX_BUFF]; while (server.IsConnected) { int length=0; try { length = _Socket.Receive(buf); } catch (Exception ex) { Log.Warning("Server closed connection."); Disconnect(server); return; } //Log.Debug("Data receive: "+length); //length = recv(server->_Socket, buf, Server.MAX_BUFF, 0); //Log.Debug("DATA RECV"); if(length <= 0) { Log.Debug("data length 0? Server Closed Connection?"); Disconnect(server); return; //for (int i=0;i<Server.MAX_BUFF;i++) {buf[i] = 0;} //Thread.Sleep(1); //continue; } Packet pak = new Packet(); pak.Length = BitConverter.ToUInt16(buf, 0); pak.Opcode = buf[2]; for (int i = 0; i < pak.Length - pak.headerlength; i++) { pak.Data[i] = buf[i + pak.headerlength]; } pak.Length -= pak.headerlength; pak.Pos = 0; Thread t = new Thread(new ParameterizedThreadStart(PakProcessor.ProcessPacket)); PacketProcessor.ProcessPacketParams args = new PacketProcessor.ProcessPacketParams(); args.server = server; args.packet = pak; t.Start(args); server.LastPacketReceived = DateTime.Now; //PakProcessor.ProcessPacket(server,pak); for (int i = 0; i < Server.MAX_BUFF; i++) { buf[i] = 0; } Thread.Sleep(1); } Log.Debug("Server Disconnected"); }
public void SendPacket(Server server, Packet packet) { // just adds the packet data to clients send buffer if (packet == null) return; if (packet.Opcode == 0x00) return; //packet.SetLength(); packet.Length += packet.headerlength; if (packet.Length <= 0) return; if (server.sbufpos + packet.Length >= Server.MAX_BUFF) return; while (server.sbuflock) { Thread.Sleep(1); } server.sbuflock = true; byte[] bar = BitConverter.GetBytes(packet.Length); server.sendbuf[server.sbufpos + 0] = bar[0]; server.sendbuf[server.sbufpos + 1] = bar[1]; server.sendbuf[server.sbufpos + 2] = packet.Opcode; for (int i = 0; i < packet.Length-packet.headerlength; i++) { server.sendbuf[server.sbufpos + packet.headerlength + i] = packet.Data[i]; } server.sbufpos += packet.Length; server.sbuflock = false; packet.Length -= packet.headerlength; InternalEvents.FireOnPacketSent(this, new OnPacketSentEventArgs(server, this, packet)); }
public OnPacketSentEventArgs(Server server, Client client, Packet pak) { _Server = server; _Client = client; Pak = pak; }