Beispiel #1
0
        static void Main(string[] args)
        {
            try
            {
                server       = new ServerObject();
                listenThread = new Thread(new ParameterizedThreadStart(server.Listen));
                listenThread.Start(port);
            }
            catch (Exception ex)
            {
                server.Disconnect();
                Console.WriteLine(ex.Message);
            }
            var ip = Dns.GetHostEntry(Dns.GetHostName())
                     .AddressList
                     .First(address => address.AddressFamily == AddressFamily.InterNetwork);
            //string ip = new WebClient().DownloadString("http://icanhazip.com");


            SocketPermission permisSocket = new SocketPermission(
                NetworkAccess.Connect, TransportType.Tcp, "localhost",
                port);

            permisSocket.Assert();

            Console.WriteLine($"Your IP is {ip}");

            Console.WriteLine("Enter ipv4 to connect");
            host = Console.ReadLine();
            Console.Write("Enter your name ");
            userName = Console.ReadLine();
            Console.WriteLine("Enter the connection port. Default is 8888");
            int connectionPort = int.Parse(Console.ReadLine());

            client = new TcpClient();
            try
            {
                client.Connect(host, connectionPort);
                stream = client.GetStream();

                string message = userName;
                byte[] data    = Encoding.Unicode.GetBytes(message);
                stream.Write(data, 0, data.Length);

                Thread receiveThread = new Thread(new ThreadStart(ReceiveMessage));
                receiveThread.Start();
                Console.WriteLine("Welcome, {0}", userName);
                SendMessage();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                Disconnect();
            }
        }
Beispiel #2
0
        public static void MethodA(string option)
        {
            Console.WriteLine("MethodA");
            Console.WriteLine("option - {0}", option);

            IPHostEntry ipHost     = Dns.Resolve("127.0.0.1");
            IPAddress   ipAddr     = ipHost.AddressList[0];
            IPEndPoint  ipEndPoint = new IPEndPoint(ipAddr, 11000);

            Socket sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            SocketPermission permitSocket = new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, "127.0.0.1", SocketPermission.AllPorts);

            if (option.Equals("deny"))
            {
                permitSocket.Deny();
            }
            else
            {
                permitSocket.Assert();
            }

            try
            {
                sender.Connect(ipEndPoint);
                Console.WriteLine("Scoket connected to {0}", sender.RemoteEndPoint.ToString());

                byte[] bytes = new byte[1024];
                byte[] msg   = Encoding.ASCII.GetBytes("Test message<TheEnd>");

                int bytesSent = sender.Send(msg);

                int bytesRec = sender.Receive(bytes);

                Console.WriteLine("Echoed test = {0}", Encoding.ASCII.GetString(bytes, 0, bytesRec));
            }
            catch (SocketException ex)
            {
                Console.WriteLine("Socket exception!\n {0}", ex.ToString());
            }
            catch (SecurityException ex)
            {
                Console.WriteLine("Security exception!\n {0}", ex.ToString());
            }
            finally {
                if (sender.Connected)
                {
                    sender.Shutdown(SocketShutdown.Both);
                    sender.Close();
                }
            }
            Console.WriteLine("Closing MethodA");
        }