コード例 #1
0
        public void Run()
        {
            user = User.GetUserDetails();

            var newConnection = new NetworkListener();
            //newConnection.NewConnection += new MainProgram().NewIncomingConnection;

            //Console.WriteLine("Enter port number to begin listening:");
            int portNumber = ExtractPortNumber(ExtractAddress(user.userAddress));

            //Display.StatusMessage($"Listening on {portNumber}");

            var listenerThread = new Thread(_ => newConnection.StartListening(portNumber));

            listenerThread.Start();

            var choice = Display.GetInputFromUser("To initiate connection press 'Y/y':");

            if (choice.ToLowerInvariant().Equals("y"))
            {
                //Console.Clear();

                //listenerThread.Interrupt();
                //listenerThread.Join();
                //newConnection.StopListening();
                listenerThread.Suspend();

                string peerAddress;

                peerAddress = Display.GetInputFromUser("Enter peer address to connect:");

                NetworkClient networkClient = new NetworkClient();

                User peer = new User(peerAddress);

                Socket socket = networkClient.Connect(ExtractAddress(peerAddress));

                Conversation newConversation = new Conversation();
                newConversation.StartConversationByClient(socket, user, peer);
            }

            Console.ReadKey(true);
        }