public static void ServerClose() { if (!Closed) { Closed = true; try { Global.ThreadsStop(); Global.FinalGlobals(); Global.serverForm.HidePtr(1); } catch (Exception ex) { Global.serverForm.StatusIndicator(1, ex); } UDPConnector.Close(); try { _serverSocket.Dispose(); Global.serverForm.HidePtr(3); } catch (Exception ex) { Global.serverForm.StatusIndicator(3, ex); } } }
/// <summary> /// Buffer: /// int PacketNum; /// </summary> public static void SendConnectionOK(GamePlayerUDP player) { PacketBuffer buffer = new PacketBuffer(); buffer.WriteInteger((int)UDPServerPackets.USConnectionOK); UDPConnector.Send(player, buffer.ToArray()); buffer.Dispose(); }
public static void SendSynergyUpdate(BaseGameRoom room, ObjectType type, int ObjectIndex, int Synergy, int UpdateIndex) { using (PacketBuffer buffer = new PacketBuffer()) { buffer.WriteInteger((int)UDPServerPackets.USSynergyUpdate); buffer.WriteInteger((int)type); buffer.WriteInteger(ObjectIndex); buffer.WriteInteger(UpdateIndex); buffer.WriteInteger(Synergy); UDPConnector.SendToRoomPlayers(room, buffer.ToArray()); } }
public static void SendPositonUpdate(BaseGameRoom room, ObjectType type, int ObjectIndex, float[] Position, int UpdateIndex) { using (PacketBuffer buffer = new PacketBuffer()) { buffer.WriteInteger((int)UDPServerPackets.USPositionUpdate); buffer.WriteInteger((int)type); buffer.WriteInteger(ObjectIndex); buffer.WriteInteger(UpdateIndex); buffer.WriteFloat(Position[0]); buffer.WriteFloat(Position[1]); buffer.WriteFloat(Position[2]); UDPConnector.SendToRoomPlayers(room, buffer.ToArray()); } }
public static void SetupServer() { try { _buffer = new byte[Constants.TCP_BUFFER_SIZE]; Closed = false; _serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); _serverSocket.Bind(new IPEndPoint(IPAddress.Any, Constants.PORT)); _serverSocket.Listen(Constants.SERVER_LISTEN); _serverSocket.BeginAccept(new AsyncCallback(AcceptCallback), null); UDPConnector.WaitConnect(); Global.serverForm.StatusIndicator(3); } catch (Exception ex) { Global.serverForm.StatusIndicator(3, ex); } }