public void StartConnectionCheck(Socket socket, ConnectionCheckHandler OnConnectionChanged) { byte[] buf = new byte[255]; try { socket.BeginReceive(buf, 0, 255, SocketFlags.None, (ar) => { if (socket.EndReceive(ar) > 0) { OnConnectionChanged?.Invoke(true); StartConnectionCheck(socket, OnConnectionChanged); } else { OnConnectionChanged?.Invoke(false); StartConnectionCheck(socket, OnConnectionChanged); } }, socket); } catch (Exception e) { OnConnectionChanged?.Invoke(false); } }
public void StopConnectionCheck(Socket socket, ConnectionCheckHandler onConnectionChanged) { socket.Close(); onConnectionChanged?.Invoke(false); }
public void SetConnectionChangedEvent(ConnectionCheckHandler _OnConnectionChanged) { OnConnectionChanged += _OnConnectionChanged; }