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; }
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); }
public void setCallback(IPlayerCallback callback) { _callback = callback; }