public bool Unregister(IPlayerCallback callback)
 {
     lock (_callbacksLock)
     {
         KeepAliveManager.Instance.Register(callback.OnPing);
         return _callbacks.Remove(callback);
     }
 }
        public bool Register(IPlayerCallback callback)
        {
            lock (_callbacksLock)
            {
                if (!_callbacks.Contains(callback))
                {
                    _callbacks.Add(callback);
                    KeepAliveManager.Instance.Register(callback.OnPing);
                    return true;
                }
            }

            return false;
        }
Exemple #3
0
        public void Start(IPlayerCallback callback, string address)
        {
            // lookup IP address if name
            if (address.Any(ch => (! char.IsNumber(ch)) && (ch != '.')))
            {
                IPAddress[] addresslist = Dns.GetHostAddresses(address);
                address = addresslist[0].ToString();
            }

            playerCallback = callback;
            IPAddress add = IPAddress.Parse(address);
            clientEndpoint = new IPEndPoint(add, port);

            Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
                                  	{SendBufferSize = BUFFER_SIZE, ReceiveBufferSize = BUFFER_SIZE};
            connection = new ConnectionInfo {Socket = clientSocket};
            connection.Socket.Connect(clientEndpoint);
            ;
            connection.Socket.BeginReceive(connection.SocketReadBuffer, 0, connection.SocketReadBuffer.Length, SocketFlags.None, ReceiveCallback, connection);
        }
Exemple #4
0
 public void setCallback(IPlayerCallback callback)
 {
     _callback = callback;
 }