Exemplo n.º 1
0
        private void ReceiveDataCallback(IAsyncResult asyncResult)
        {
            ConnectionParam connectionParam = (ConnectionParam)asyncResult.AsyncState;

            try
            {
                SocketError error;
                Socket      sender  = connectionParam.Socket;
                int         msgSize = sender.EndReceive(asyncResult, out error);

                if (error == SocketError.Success)
                {
                    byte[] incomingData = new byte[msgSize];
                    Array.Copy(connectionParam.Context, incomingData, msgSize);


                    ApiManager manager = new ApiManager();

                    manager.GetRooting().RouteRequests(connectionParam);

                    //add API logic
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Error while receiving message : " + e.Message);
            }
            finally
            {
                var status = IsConnected(connectionParam.Socket);
                if (status)
                {
                    connectionParam.Socket.BeginReceive(connectionParam.Context, 0, connectionParam.Context.Length
                                                        , SocketFlags.None, ReceiveDataCallback, connectionParam);
                }
                else
                {
                    Console.WriteLine("Deconectarea socketului:" + connectionParam.Address);
                    connectionParam.Socket.Close();

                    //Added ConnectionStorage
                    ConnectionStorage.GetInstance().ExcludeConnection(connectionParam);
                }
            }
        }
Exemplo n.º 2
0
 private void AcceptConnectionCallback(IAsyncResult result)
 {
     try
     {
         ConnectionParam connection = new ConnectionParam();
         connection.Socket  = _socket.EndAccept(result);
         connection.Address = connection.Socket.RemoteEndPoint.ToString();
         connection.Socket.BeginReceive(connection.Context, 0, connection.Context.Length
                                        , 0, ReceiveDataCallback, connection);
     }
     catch (Exception e)
     {
         Console.WriteLine("Error while accepting data" + e.Message);
     }
     finally
     {
         AcceptConnection();
     }
 }