Ejemplo n.º 1
0
        public void Start()
        {
            IsRunning  = true;
            MainThread = new Thread(new ThreadStart(() => {
                try
                {
                    AcceptReset = new ManualResetEvent(false);

                    ListenSocket = new Socket(SocketType.Stream, ProtocolType.Tcp);

                    ListenSocket.Bind(LocalIp);
                    ListenSocket.Listen(100);

                    OnLog(String.Format("[HttpServer] Listening on {0}", LocalIp.ToString()));
                }
                catch (Exception ex)
                {
                    OnLog(string.Format("[HttpServer] Start failed: {0}", ex.ToString()));
                    return;
                }

                while (IsRunning)
                {
                    StartListening();
                }
            }));
            MainThread.Start();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Makes a UDP connection and extracts the local IP address
        /// </summary>
        /// <returns>A local IPv4 address as a string</returns>
        public string GetLocalIp()
        {
            IPAddress LocalIp;

            using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, 0))
            {
                socket.Connect("8.8.8.8", 65530);
                IPEndPoint endPoint = (IPEndPoint)socket.LocalEndPoint;
                LocalIp = endPoint.Address;
            }
            return(LocalIp.ToString());
        }
        public override string ToString()
        {
            var sb = new StringBuilder();

            sb.AppendLine(LocalIp.ToString());
            if (RemoteIp != null)
            {
                sb.AppendLine(RemoteIp.ToString());
            }
            if (!String.IsNullOrEmpty(ProcessName))
            {
                sb.AppendLine($"{ProcessName} ({ProcessId})");
                if (ProcessFilename != null)
                {
                    sb.AppendLine(ProcessFilename);
                }
            }
            else
            {
                sb.AppendLine("Process not available");
            }
            sb.AppendLine();
            return(sb.ToString());
        }