示例#1
0
    private void ListenerWork()
    {
        while (true)
        {
            _threadRunning     = true;
            _listenerCancelled = false;
            AsyncIO.ForceDotNet.Force();
            using (var server = new PairSocket())
            {
                server.Bind("tcp://*:" + port);

                while (!_listenerCancelled)
                {
                    Connected = _contactWatch.ElapsedMilliseconds < ContactThreshold;
                    byte[] frameBytes;
                    if (!server.TryReceiveFrameBytes(out frameBytes))
                    {
                        continue;
                    }
                    _contactWatch.Restart();
                    if (OnBytes != null && frameBytes != null)
                    {
                        OnBytes.Invoke(frameBytes);
                    }
                }

                server.Close();
            }
            NetMQConfig.Cleanup();
            _threadRunning = false;
        }
    }