Beispiel #1
0
 public override void Connect()
 {
     listenSocket = AweSock.TcpListen(NodeInformation.own.port + 1);
     while (connections.Count < targetClientNumber)
     {
         connections.Add(AweSock.TcpAccept(listenSocket));
         InitializeClient(connections[connections.Count - 1]);
     }
 }
Beispiel #2
0
        /// <summary>
        /// Starts the agent.
        /// </summary>
        public void Start(int pPort)
        {
            this.ListenSocket = AweSock.TcpListen(pPort);
            AweSock.TcpAccept(this.ListenSocket, SocketCommunicationTypes.NonBlocking, this.NewClient);

            this.mHandler = new AgentServerHandler(this);
            this.mThread  = new Thread(this.mHandler.Update);
            this.mThread.Start();
        }
Beispiel #3
0
        private void ServerThread(Action <bool> callback)
        {
            var sendBuffer   = Buffer.New();
            var recvBuffer   = Buffer.New();
            var listenSocket = AweSock.TcpListen(14804);
            var client       = AweSock.TcpAccept(listenSocket);

            SendTestMessage(client, sendBuffer);
            callback(ReceiveResponseFromClient(client, recvBuffer));
        }
Beispiel #4
0
        void Listen()
        {
            syncServer = AweSock.TcpListen(port);
            Thread.Sleep(3000);
            Log.Notice("Master Server is listening on {0}:{1}", ip, port);

            while (true)
            {
                var client   = AweSock.TcpAccept(syncServer);
                var receiver = new IPCReceiver(client, this);
            }
        }
Beispiel #5
0
 private void StartServer(int serverPort)
 {
     if (_listenSocket != null)
     {
         _listenSocket.Close();
         _listenSocket = null;
     }
     _listenSocket = AweSock.TcpListen(serverPort);
     //Non-blocking mode
     AweSock.TcpAccept(_listenSocket, SocketCommunicationTypes.NonBlocking, AcceptClient);
     _logger.Info($"Listening on port: {serverPort}");
 }
Beispiel #6
0
        public void ListenForConnections()
        {
            var taskFactory = new TaskFactory();

            ListenSocket = AweSock.TcpListen(ListenPort);
            while (!CancelToken.IsCancellationRequested)
            {
                try
                {
                    var clientSocket = AweSock.TcpAccept(ListenSocket);
                    ClientSockets.TryAdd(clientSocket, 0);
                    var listenTask = new Task(() => ListenForMessages(clientSocket), TaskCreationOptions.LongRunning);
                    listenTask.ContinueWith(t =>
                    {
                        lock (ListenTasks)
                        {
                            ListenTasks.Remove(t);
                        }
                    }).ConfigureAwait(false);
                    lock (ListenTasks)
                    {
                        ListenTasks.Add(listenTask);
                    }
                    listenTask.Start();
                }
                catch (SocketException)
                {
                    if (!CancelToken.IsCancellationRequested)
                    {
                        try
                        {
                            // Try and re-connect.
                            Thread.Sleep(1000);
                            ListenSocket = AweSock.TcpListen(ListenPort);
                        }
                        catch (SocketException)
                        {
                        }
                    }
                }
            }
        }
Beispiel #7
0
        public void StartServer(Trainer trainer)
        {
            Console.WriteLine("Please enter the server port and press return:");
            string port = Console.ReadLine();


            ISocket listenSocket = AweSock.TcpListen(int.Parse(port));

            Console.WriteLine("Server started");
            ISocket client = AweSock.TcpAccept(listenSocket);

            var inBuf  = AwesomeSockets.Buffers.Buffer.New(99999);
            var outBuf = AwesomeSockets.Buffers.Buffer.New(99999);

            while (true)
            {
                try
                {
                    //get message
                    Stopwatch stopWatch = new Stopwatch();
                    stopWatch.Start();

                    Tuple <int, EndPoint> received = AweSock.ReceiveMessage(client, inBuf);

                    stopWatch.Stop();

                    TimeSpan ts = stopWatch.Elapsed;
                    trainer.timeSinceUpdate = ts.Milliseconds;

                    AwesomeSockets.Buffers.Buffer.FinalizeBuffer(inBuf);

                    //parse message
                    var res = Utils.Deserialize <Dictionary <string, byte[]> >(AwesomeSockets.Buffers.Buffer.GetBuffer(inBuf));
                    AwesomeSockets.Buffers.Buffer.ClearBuffer(inBuf);

                    //act on message
                    this.HandleInputData(res, trainer);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    Console.WriteLine(e.StackTrace);

                    AwesomeSockets.Buffers.Buffer.ClearBuffer(outBuf);
                    AwesomeSockets.Buffers.Buffer.ClearBuffer(inBuf);
                    trainer.Initialize();
                }

                try {
                    //get response data
                    var outputData = this.GetOutputData(trainer);

                    //write to buffer
                    AwesomeSockets.Buffers.Buffer.ClearBuffer(outBuf);
                    AwesomeSockets.Buffers.Buffer.Add(outBuf, Utils.ObjectToByteArray(outputData));
                    AwesomeSockets.Buffers.Buffer.FinalizeBuffer(outBuf);

                    //respond
                    int bytesSent = AweSock.SendMessage(client, outBuf);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    Console.WriteLine(e.StackTrace);

                    AwesomeSockets.Buffers.Buffer.ClearBuffer(outBuf);
                    AwesomeSockets.Buffers.Buffer.ClearBuffer(inBuf);
                    trainer.Initialize();
                }
            }

            Console.ReadLine();
        }