diff --git a/HttpServer.cs b/HttpServer.cs index 5c30254..4b137c4 100644 --- a/HttpServer.cs +++ b/HttpServer.cs @@ -69,7 +69,8 @@ namespace DualScreenDemo // 將本地前綴添加到 HttpListener,使其監聽該 URL listener.Prefixes.Add(localPrefix); - + string hostName = System.Net.Dns.GetHostName(); + string externalPort = '1' + hostName.Substring(Math.Max(2, hostName.Length - 20)); // 如果有外网地址,也添加外网地址前缀 if (!string.IsNullOrEmpty(externalAddress)) @@ -78,8 +79,7 @@ namespace DualScreenDemo // 外網 IP 和 port 調整 string[] parts = externalAddress.Split(':'); string host = parts[0]; - string hostName = System.Net.Dns.GetHostName(); - string externalPort = '1' + hostName.Substring(Math.Max(2, hostName.Length - 20)); + //int externalPort = parts.Length > 1 ? int.Parse(parts[1]) : port; string externalPrefix = String.Format("http://{0}:{1}/", host, externalPort); @@ -102,10 +102,10 @@ namespace DualScreenDemo // 修改外网二维码内容生成 string externalQrContent = !string.IsNullOrEmpty(externalAddress) ? - String.Format("http://{0}/{1}/windows.html", externalAddress, randomFolderName) : + String.Format("http://{0}:{1}/{2}/windows.html", externalAddress, externalPort, randomFolderName) : localQrContent; - + Console.WriteLine("local QR Content : " + localQrContent); Console.WriteLine("external QR Content : " + externalQrContent); // 生成二维码(这里使用外网地址的二维码,因为通常外网地址更有用) string qrImagePath = GenerateQRCode(externalQrContent, Path.Combine(baseDirectory, randomFolderName, "qrcode.png"));