public void StartConnect() { IPAddress ipAddress = IPAddress.Parse(IP); remoteEP = new IPEndPoint(ipAddress, Port); if (connection != null && !connection.m_Disposed) { connection.Dispose(); connection = null; } connection = new JHSConnection(); connection.Init(true); if (NetConfig.logFilter >= JHSLogFilter.Developer) { JHSDebug.Log("JHSNetworkManager Connecting to Server reconnect attmpt:" + m_RecconectTry); } connection.m_socket = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp) { Blocking = false }; connection.m_socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveBuffer, 1048576); connection.m_socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendBuffer, 1048576); connection.m_socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.DontLinger, 1); connection.m_socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, 0); connection.m_socket.BeginConnect(remoteEP, ConnectCallback, connection.m_socket); Connecting = true; PermaDisconnected = false; }
public bool Disconnect(JHSConnection con) { JHSNetworkClient.Instance.ClientConnected = false; if (con != null) { JHSNetworkClient.PushMessage(new JHSNetworkMessage { msgType = RecconectTry == m_RecconectTry ? InternalMessages.DISCONNECT : InternalMessages.DISCONNECT_BUT_WILL_RECONNECT, conn = con, reader = new JHSNetworkReader() }); JHSStatisiticsManager.Remove(con); con.Dispose(); Connected = false; LastTryToConnect = JHSTime.Time + NetConfig.ReconnectTimeOut; return(true); } LastTryToConnect = JHSTime.Time + NetConfig.ReconnectTimeOut; Connected = false; return(false); }
public bool Disconnect(JHSConnection con) { if (con != null) { uint conId = con.connectionId; JHSNetworkServer.PushMessage(new JHSNetworkMessage { msgType = InternalMessages.DISCONNECT, conn = con, reader = new JHSNetworkReader() }); JHSStatisiticsManager.Remove(con); lock (m_Connections) { if (m_Connections.ContainsKey(conId)) { m_Connections.Remove(conId); } } con.Dispose(); } return(true); }