Пример #1
0
        static void Main(string[] args)
        {
            var socket = new SocketReceiver();

            socket.Connect(Common.ip, Common.port);
            Console.ReadLine();
        }
Пример #2
0
        public static void Main(string[] args)
        {
            SocketReceiver.StartListener();
            while (MainWindow.Win.IsOpen)
            {
                MainWindow.Win.DispatchEvents();
                MainWindow.Clear();

                if (_state == State.MENU)
                {
                    MenuController.Update();
                }
                else
                {
                    GameController.Update();
                }

                if (KeysInfo.Pressed.Contains(Keyboard.Key.Escape))
                {
                    MainWindow.Win.Close();
                }

                MainWindow.Win.Display();
            }
        }
 public SocketConnection(EndPoint endpoint)
 {
     _socket   = new Socket(SocketType.Stream, ProtocolType.Tcp);
     _endpoint = endpoint;
     _sender   = new SocketSender(_socket, PipeScheduler.ThreadPool);
     _receiver = new SocketReceiver(_socket, PipeScheduler.ThreadPool);
     Features.Set <IConnectionInherentKeepAliveFeature>(this);
 }
Пример #4
0
    public TcpConnection(EndPoint endPoint)
    {
        _socket   = new Socket(SocketType.Stream, ProtocolType.Tcp);
        _endPoint = endPoint;

        _sender   = new SocketSender(_socket, PipeScheduler.ThreadPool);
        _receiver = new SocketReceiver(_socket, PipeScheduler.ThreadPool);

        // Add IConnectionInherentKeepAliveFeature to the tcp connection impl since Kestrel doesn't implement
        // the IConnectionHeartbeatFeature
        Features.Set <IConnectionInherentKeepAliveFeature>(this);
    }
Пример #5
0
        public async ValueTask OpenAsync(string host, string database, string userName, string password,
                                         CancellationToken cancellationToken)
        {
            m_connectorState = ConnectorState.Connecting;
            var socketTask = ConnectAsync(host);
            var socket     = socketTask.IsCompletedSuccessfully
                ? socketTask.Result
                : await socketTask.ConfigureAwait(false);

            var sendBufferBytes    = m_arrayPool.Rent(512);
            var receiveBufferBytes = m_arrayPool.Rent(512);

            try
            {
                var sendBuffer    = new Memory <byte>(sendBufferBytes);
                var receiveBuffer = new Memory <byte>(sendBufferBytes);

                var sender = new SocketSender(socket);
                var sendStartupMessageTask =
                    SendStartupMessage(sender, sendBuffer, database, userName, cancellationToken);
                if (!sendStartupMessageTask.IsCompletedSuccessfully)
                {
                    await sendStartupMessageTask.ConfigureAwait(false);
                }

                var receiver = new SocketReceiver(socket);
                var processStartupMessageResponseTask = ProcessStartupMessageResponse(sender, sendBuffer, receiver, receiveBuffer,
                                                                                      userName, password, cancellationToken);
                if (!processStartupMessageResponseTask.IsCompletedSuccessfully)
                {
                    await processStartupMessageResponseTask.ConfigureAwait(false);
                }

                m_connectorState = ConnectorState.ReadyForQuery;

                m_connectionInfo          = new ConnectionInfo();
                m_connectionInfo.Host     = host;
                m_connectionInfo.Database = database;
                m_connectionInfo.UserName = userName;
                m_connectionInfo.Password = password;

                m_socket = socket;
            }
            finally
            {
                m_arrayPool.Return(sendBufferBytes);
                m_arrayPool.Return(receiveBufferBytes);
            }
        }
Пример #6
0
        private async Task <TransportMessage> ReceiveMessageInServer()
        {
            if (_serverSocket == null)
            {
                _serverSocket = _listener.EndAcceptSocket(_serverListenResult);
            }

            var buffer    = new byte[65535];
            var args      = new SocketAsyncEventArgs();
            var awaitable = new SocketAwaitable(args);
            var receiver  = new SocketReceiver(_serverSocket, args, awaitable, buffer);
            var protocol  = new SimpleProtocolDecoder(new JsonTransportSerializer());

            return(await protocol.Decode(receiver) as TransportMessage);
        }
Пример #7
0
        public Startup(IHostingEnvironment env)
        {
            //change to red shiled
            SocketReceiver test = new SocketReceiver(new Socket(new SocketInformation()), new IOQueue());

            test.WaitForDataAsync();
            //////
            var builder = new ConfigurationBuilder();

            builder.SetBasePath(env.ContentRootPath)
            .AddJsonFile("configuration.json", optional: false, reloadOnChange: true)
            .AddEnvironmentVariables();

            Configuration = builder.Build();
        }
Пример #8
0
        /// <summary>
        /// Starts Receive Thread
        /// </summary>
        private void ReceiveThreadStart()
        {
            lock (m_stateLock)
            {
                // Initiate Socket Receive Operations
                if (m_comandReceiver == null)
                {
                    m_comandReceiver = new SocketReceiver(this, m_commandSocket, "Command");
                }

                if (m_eventDataReceiver == null)
                {
                    m_eventDataReceiver = new SocketReceiver(this, m_eventDataSocket, "Event");
                }
            }
        }
Пример #9
0
    public async Task T02_Disconnect_ReceiveBytesAsync()
    {
        var endPoint = new IPEndPoint(IPAddress.IPv6Loopback, 0);

        ServerSocket.Bind(endPoint);
        ServerSocket.Listen(10);
        endPoint = (IPEndPoint)(ServerSocket.LocalEndPoint ?? throw new InvalidOperationException("EndPoint"));
        Socket.Connect(endPoint);

        var accepted = ServerSocket.Accept();

        accepted.Disconnect(false);

        var reader = new SocketReceiver(Socket, Logger, "?");

        // after the remote socket disconnects, reader.ReceiveByteAsync() returns nothing
        var any = await reader.ReceiveAllAsync(default).AnyAsync();
Пример #10
0
    // Start is called before the first frame update
    void Start()
    {
        frameRate = TMConfig.Current.defaultFrameRate;
        // Application.targetFrameRate = frameRate;

        receiver          = new SocketReceiver(TMConfig.Current.port);
        receiver.OnBytes += OnBytes;

        receiveColor32Array = new Color32[texWidth * texHeight];
        receiveColorArray   = new Color[texWidth * texHeight];


        receiveTex            = new Texture2D(texWidth, texHeight, TextureFormat.RGB24, false, true);
        receiveTex.filterMode = FilterMode.Point;
        receiveMaterial.SetTexture("_MainTex", receiveTex);

        harpaModel = GameObject.Find("HarpaModel");
    }
Пример #11
0
 private void StartListenerService()
 {
     try
     {
         SetStatus("Starting socket server ...");
         _sr = new SocketReceiver();
         SetStatus("Created socket receiver object ...");
         _sr.OnRX              += new SocketReceiver.DataRXHandler(OnServerRX);
         _sr.OnStatusUpdate    += new SocketReceiver.StatusUpdateHandler(OnStatusUpdate);
         _sr.OnSocketException += new SocketReceiver.SocketExceptionHandler(OnListenSocketException);
         _sr.CreateServer(_ipAddress, _port);
     }
     catch (Exception ex) //Due to Async op of socket entry will not be here, but just in case
     {
         SetStatus("Error encountered :" + ex.Message);
         //Change button to start again as something as gone wrong
         FlipStartStopText();
     }
 }
Пример #12
0
        private void SendReceive(Socket client)
        {
            ISocketReceiver <string> _receiver = new SocketReceiver(_client, 1024, 128);
            ISocketSender <string>   _sender   = new SocketSender(_client);

            while (true)
            {
                if (client != null && !client.Connected)
                {
                    break;
                }
                else if (client != null && client.Connected)
                {
                    _sender.Send("", new ServerSenderAuthenticationLogic());
                    _receiver.Read(new ServerReceiverAuthenticationLogic());
                }

                Thread.Sleep(1000);
            }
        }
Пример #13
0
        protected override void SendReceive()
        {
            ISocketSender   sender   = new SocketSender(_client);
            ISocketReceiver receiver = new SocketReceiver(_client);

            ILogic authen = new BaseSocketLogic(new SocketAuthenLogic(sender, receiver), _client);
            ILogic biz    = new BaseSocketLogic(new SocketBusinessLogic(sender, receiver), _client);

            LogicFlowModel[] logics =
            {
                //new LogicFlowModel { Logic = authen, Seq = 3 },
                new LogicFlowModel {
                    Logic = biz, Seq = 5
                }
            };

            BaseLogicFlow logicMgr = new SocketLogicFlow(logics);

            logicMgr.Execute();
        }
Пример #14
0
    internal SocketConnection(Socket socket,
                              MemoryPool <byte> memoryPool,
                              PipeScheduler transportScheduler,
                              ILogger logger,
                              SocketSenderPool socketSenderPool,
                              PipeOptions inputOptions,
                              PipeOptions outputOptions,
                              bool waitForData = true)
    {
        Debug.Assert(socket != null);
        Debug.Assert(memoryPool != null);
        Debug.Assert(logger != null);

        _socket           = socket;
        MemoryPool        = memoryPool;
        _logger           = logger;
        _waitForData      = waitForData;
        _socketSenderPool = socketSenderPool;

        LocalEndPoint  = _socket.LocalEndPoint;
        RemoteEndPoint = _socket.RemoteEndPoint;

        ConnectionClosed = _connectionClosedTokenSource.Token;

        // On *nix platforms, Sockets already dispatches to the ThreadPool.
        // Yes, the IOQueues are still used for the PipeSchedulers. This is intentional.
        // https://github.com/aspnet/KestrelHttpServer/issues/2573
        var awaiterScheduler = OperatingSystem.IsWindows() ? transportScheduler : PipeScheduler.Inline;

        _receiver = new SocketReceiver(awaiterScheduler);

        var pair = DuplexPipe.CreateConnectionPair(inputOptions, outputOptions);

        // Set the transport and connection id
        Transport   = _originalTransport = pair.Transport;
        Application = pair.Application;

        InitializeFeatures();
    }
Пример #15
0
        private async ValueTask <bool> WaitForDisconnect(Socket socket, CancellationToken cancellationToken)
        {
            var receiveBufferBytes = m_arrayPool.Rent(1);

            try
            {
                var socketReceiver = new SocketReceiver(socket);
                var receiveCount   = await socketReceiver.ReceiveAsync(receiveBufferBytes, cancellationToken).ConfigureAwait(false);

                return(receiveCount <= 0);
            }
            catch (SocketException socketException) when(socketException.SocketErrorCode == SocketError.ConnectionReset)
            {
                return(true);
            }
            catch (SocketException)
            {
                return(false);
            }
            finally
            {
                m_arrayPool.Return(receiveBufferBytes);
            }
        }
Пример #16
0
 /// <summary>
 /// Starts Receive Thread
 /// </summary>
 private void ReceiveThreadStart()
 {
     lock (m_stateLock)
     {
         // Initiate Socket Receive Operations
         if (m_comandReceiver == null)
         {
             m_comandReceiver = new SocketReceiver(this, m_commandSocket, "Command");
         }
         
         if (m_eventDataReceiver == null)
         {
             m_eventDataReceiver = new SocketReceiver(this, m_eventDataSocket, "Event");
         }
     }
 }