public Boolean CloseServer() { if (runState == State.Server || runState == State.None) { foreach (Player player in playerList.GetPlayers()) { try { NetworkComms.SendObject("ServerStopped", player.IP, player.Port, new Player("Server", -1)); Thread.Sleep(SLEEP_TIME); } catch (Exception e) { Console.WriteLine("[CloseServer] " + e.Message); } } // if (MainGame.Instance.HostOnly) baseClass.ServerStopped(); playerList.ClearPlayers(); Connection.StopListening(); NetworkComms.RemoveGlobalIncomingPacketHandler(); NetworkComms.CloseAllConnections(); // NetworkComms.Shutdown (); baseClass.NetworkStopped(); return(true); } else { return(false); } }
/// <summary> /// Delegate for handling incoming packets. /// 处理接收到的数据包 事件是在多线程中回调的,不能实现确定回调的线程 /// </summary> /// <param name="packetHeader">消息包头部</param> /// <param name="connection">底层的连接</param> /// <param name="incomingObject">接收到的消息</param> private static void PacketHandlerAction(PacketHeader packetHeader, Connection connection, string incomingObject) { //解析数据包处理,并发送 #region 消息处理事件 #endregion Random rand = new Random(); Console.WriteLine("接收到:" + incomingObject + ",thread id =" + Thread.CurrentThread.ManagedThreadId); foreach (var existCon in GetExistingConnection()) { Console.WriteLine(existCon.ConnectionInfo.RemoteEndPoint); } if (rand.Next(1, 4) == 1) { Console.WriteLine("发送"); connection.SendObject(PacketType, "接收到:" + incomingObject); if (rand.Next(1, 3) == 1) { Console.WriteLine("关闭"); NetworkComms.CloseAllConnections(ConnectionType.TCP); } } }
public void Closeconn() { //newUDPConn.CloseConnection(false); NetworkComms.CloseAllConnections(); NetworkComms.RemoveGlobalIncomingPacketHandler <byte[]>("icecream", Unamangedbytevoice); NetworkComms.RemoveGlobalIncomingPacketHandler(); Debug.WriteLine(NetworkComms.GlobalIncomingPacketHandlerExists("icecream")); NetworkComms.Shutdown(); }
public static void StartListener(string ip) { NetworkComms.CloseAllConnections(); SneezeClientListener.ip = ip; Thread t = new Thread(GetDatabase); t.IsBackground = true; t.Name = "Listener Thread"; t.Start(); }
protected virtual void RestartAsHost(EventArgs e) { EventHandler handler = RestartAsHostEventHandler; NetworkComms.RemoveGlobalIncomingPacketHandler(); NetworkComms.CloseAllConnections(); if (handler != null) { handler(this, e); } }
private int InitiateConnection(Boolean isClient) { if (initialPort > 61020) { return(-1); } if (portSet) { return(listenPort); } String[] splitIP; try { Connection.StartListening(ConnectionType.TCP, new IPEndPoint(IPAddress.Any, initialPort)); foreach (IPEndPoint localEndPoint in Connection.ExistingLocalListenEndPoints(ConnectionType.TCP, new IPEndPoint(IPAddress.Any, initialPort))) { splitIP = localEndPoint.Address.ToString().Split('.'); if ((splitIP[0] == "10") || (splitIP[0] == "172" && Int32.Parse(splitIP[1]) >= 16 && Int32.Parse(splitIP[1]) <= 31) || (splitIP[0] == "192" && splitIP[1] == "168")) { listenPort = localEndPoint.Port; if (isClient) { clientIP = localEndPoint.Address.ToString(); clientPort = localEndPoint.Port; } else { serverIP = localEndPoint.Address.ToString(); serverPort = localEndPoint.Port; } portSet = true; return(localEndPoint.Port); } } } catch (Exception) { Connection.StopListening(); NetworkComms.CloseAllConnections(); NetworkComms.Shutdown(); initialPort += 42; InitiateConnection(isClient); } return(-1); }
internal static void Stop() { Console.WriteLine(Resources.Server_Stop_Stop); ClientManager.Shutdown(); NetworkConfig.Stop(); foreach (var server in servers) { server.Value.Shutdown(); } NetworkComms.CloseAllConnections(); NetworkComms.Shutdown(); NpcShopManager.Shutdown(); ItemManager.Shutdown(); servers.Clear(); Console.WriteLine(Resources.Server_Stop_Success); }
private static bool VerifyDatabase() { if (database == null) { return(false); } if (database.Version != SneezeDatabase.currentVersionNumber) { NetworkComms.CloseAllConnections(); database = null; DatabaseError?.Invoke(DatabaseErrorType.VersionNumberConflict); return(false); } return(true); }
public Boolean CloseClient() { if (runState == State.Client || runState == State.None) { playerList.ClearPlayers(); Connection.StopListening(); NetworkComms.RemoveGlobalIncomingPacketHandler(); NetworkComms.CloseAllConnections(); // NetworkComms.Shutdown (); baseClass.NetworkStopped(); return(true); } else { return(false); } }
public void Disconnect() { while (Peers.Count > 0) { Peers.First().DisconnectAny(); } while (Trackers.Count > 0) { Trackers.First().Disconnect(); } t.Stop(); PeerDiscovery.DisableDiscoverable(); Connection.StopListening(); NetworkComms.CloseAllConnections(); NetworkComms.Shutdown(); NetworkComms.Logger.Warn("===== Client stopped ====="); Started = false; }
private void OnDestroy() { NetworkComms.CloseAllConnections(); }
public void Stop() { NetworkComms.CloseAllConnections(); }
/// <summary> /// 关闭所有的连接 /// </summary> public static void CloseAllConnection() { NetworkComms.CloseAllConnections(ConnectionType.TCP); }