- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做一些 socket 测试。我正在尝试将客户端连接到服务器的外部/公共(public) IP 地址。不幸的是,虽然我找到了一个开放的端口,但套接字并没有响应它的外部/公共(public) ip。这是服务器代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;
namespace PortScannerServer
{
class Program
{
static void Main(string[] args)
{
Console.Title = "Server";
while (true)
{
try
{
_server.Bind(new IPEndPoint(IPAddress.Any, 0));
_server.Listen(10);
Console.WriteLine(_server.LocalEndPoint.ToString());
Console.WriteLine(GetExternalAddress().ToString());
_server.Accept();
Console.WriteLine("Connected");
break;
}
catch (Exception ex)
{
Console.WriteLine(ex.Source + ":" + ex.Message + ":" + ex.InnerException);
}
}
}
static IPAddress GetExternalAddress()
{
var html = new WebClient().DownloadString("http://checkip.dyndns.com/");
var ipStart = html.IndexOf(": ", StringComparison.OrdinalIgnoreCase) + 2;
return IPAddress.Parse(html.Substring(ipStart, html.IndexOf("</", ipStart, StringComparison.OrdinalIgnoreCase) - ipStart));
}
static Socket _server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace PortScanner
{
class Program
{
static void Main(string[] args)
{
Console.Title = "Client";
Console.WriteLine("Enter host ip");
_ip = IPAddress.Parse(Console.ReadLine());
Console.WriteLine("Enter host port");
_port = Convert.ToInt32(Console.ReadLine());
while (true)
{
try
{
_client.Connect(new IPEndPoint(_ip, _port));
Console.WriteLine("Connected!");
Console.ReadLine();
break;
}
catch
{
Console.WriteLine("Could not connect to client");
}
}
}
static IPAddress _ip;
static int _port;
static Socket _client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
}
}
最佳答案
根据您的描述,您尝试连接的服务器似乎与客户端位于同一内部网络上(您所说的 127.0.0.1
工作的事实让我认为它甚至可能是同一台机器)。
要支持导航到公共(public)地址然后转发到始发网络中的内部地址,您的 NAT 路由器需要支持称为“Hairpinning”或“NAT Loopback”的功能。许多消费者 SOHO 路由器不支持此功能,并且那些不经常在文档中标注是否支持该功能的路由器。
您需要将路由器上的固件升级/更换为支持发夹的固件或完全更换路由器 with one that does能够将您的公共(public) IP 重定向到路由器后面的内部网络上的计算机。
除了不使用公共(public) IP 而是使用内部 IP 之外,您无法在代码中解决此问题。
关于C# 网络 : Socket won't respond to external ip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42422609/
如何修复 Excel VBA 中的 Not Responding 错误? 我的代码是完美的,我没有收到任何错误,但在我运行它之后,我会看到 Excel VBA 的NOT RESPONDING 顶部并且
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicate: Keep app responsive during long task 在处理大型查询或长流程循环时如何避免“无响
这是我第一次遇到有人试图侵入我创建的网站。我可以做什么来阻止这些尝试? 顺便说一句,他们的 SQL 注入(inject)不可能起作用,而且我们拥有的任何数据都不能被正常使用该网站的任何人使用。 附加:
我的 java 进程停止响应。我尝试 jstack 但失败并出现以下错误。 21039: Unable to open socket file: target process not respondi
This question already has answers here: Closed 7 years ago. Possible Duplicate: Dismiss keyboard on
我不确定这是否重复,我尝试过的可能的补救措施无效。 (下面会提到) 我目前正在为我正在做的项目使用 Theme.AppCompat.NoActionBar 并且正在使用 android.support
这是一个简单的用户登录。我只是想了解这个概念。让我解释一下我的代码问题。这是我的表单: User: Password: check_login.php: Use
我正在创建一个线程,它可以控制所有程序过程消息并且不会卡住程序。我写了this code我得到了 program not responding。 有没有人有使用线程的经验可以帮助我? 最佳答案 Win
我将 Selenium 与 Python 结合使用。单击按钮时,我在 widows Python 中收到一条消息: Not responding in widows Python I have the
我有一个长时间运行的方法,必须在 UI 线程上运行。(Devex - gridView.CopyToClipboard()) 我不需要 UI 在复制时响应,我添加了启动画面,这样用户就不会感到无聊。
对于测试,使程序显示“无响应”的最简单方法是什么?中断 Windows 消息或将其置于无限循环中? 我试过一个简单的循环 while(true) 但这行不通。测试应用程序是 C# 控制台应用程序。它在
App里发生的最糟糕的事是弹出应用无响应”Application Not Responding” (ANR) 对话框.本课讲的是如何保持应用响应,避免ANR。 什么触发ANR 通常,系统会在应用
我们遇到一个客户运行我们基于 WPF 的程序的问题。他可以启动应用程序、创建新文档、在 TreeView 中导航菜单项以查看文档的不同部分、更改几乎(如果不是全部)我们的文本框值、将项目添加到列表(使
在VCL主线程中,我运行一个脚本,该脚本可能需要几分钟才能执行(这是一个还原数据库脚本)。 如果用户单击UI,则我的标题为“无响应”。 Application.ProcessMessages不起作用。
我这里有一个无意义的小脚本,我正在 MATLAB R2013b 中执行它: clear all; n = 2000; times = 50; i = 0; tCPU = tic; disp 'CPU:
我想将验证错误发送回另一个页面(添加),因此我的save操作具有以下功能: @Transactional(readOnly = false) def save(AddDomainCommand com
我正在构建一个 JavaFX 应用程序并使用 JOptionPane 来显示对话框 我遇到的问题之一是创建一个新对话框并且不在 5 秒左右关闭它会导致主 JavaFX 阶段进入“无响应”状态 在新线程
好吧,我尝试将信息从 servlet 发送到 jsp,所以我尝试使用 request.setAttribute() 和 respond.getRequestDispatcher("page.jsp")
我对代码进行排序有什么问题吗?当我打开程序时,我看到错误“程序未响应”。请检查我的代码。 void sorting(el_list **first) { el_list *newfirst =
出于测试目的,我需要编写一个程序,将著名的“应用程序未响应”消息显示在屏幕上。我不知道我怎么会激起这样的 react 。 最快、最简单的方法是什么?最好是 C/C++ 或 Java 最佳答案 在 Wi
我是一名优秀的程序员,十分优秀!