Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IP地址问题_C#_.net_Network Programming - Fatal编程技术网

C# IP地址问题

C# IP地址问题,c#,.net,network-programming,C#,.net,Network Programming,我构建了一个TictaToe游戏应用程序,我使用TCP协议,该协议由服务器和客户端组成,运行两次以代表两个对手。我有一个问题,我找不到解决办法,这就是为什么我要问这个问题。问题是:当客户端尝试连接我的计算机上的服务器时,它从未连接,因为从我的计算机窗口中的本地连接的“支持”选项卡获取的IP地址不正确。我试图从告诉你你的IP的网站上获取我的IP地址,但我不工作。我有一个问题,以确定我的IP地址,任何机器都可以连接到我从任何地方。 p、 我用路由器连接互联网。 谢谢 你可以使用project-int

我构建了一个TictaToe游戏应用程序,我使用TCP协议,该协议由服务器和客户端组成,运行两次以代表两个对手。我有一个问题,我找不到解决办法,这就是为什么我要问这个问题。问题是:当客户端尝试连接我的计算机上的服务器时,它从未连接,因为从我的计算机窗口中的本地连接的“支持”选项卡获取的IP地址不正确。我试图从告诉你你的IP的网站上获取我的IP地址,但我不工作。我有一个问题,以确定我的IP地址,任何机器都可以连接到我从任何地方。 p、 我用路由器连接互联网。 谢谢

你可以使用project-intercept.com/ip.php,这是我的反作弊项目网站,也可以使用whatsmyip.org/ip.php,我认为这是url。基本上,任何作为echo的URL都只是ip。如果您想自己托管php,请创建一个php文件并添加此文件

echo $_SERVER['HTTP_CLIENT_IP'];

你可以使用project-intercept.com/ip.php,这是我的反作弊项目网站,也可以使用whatsmyip.org/ip.php,我认为这是url。基本上,任何作为echo的URL都只是ip。如果您想自己托管php,请创建一个php文件并添加此文件

echo $_SERVER['HTTP_CLIENT_IP'];


首先,我要通过在同一台机器上运行服务器和客户端,并直接使用localhost或127.0.0.1作为ip地址来检查以确保任何本地设置和其他内容都是正确的。如果这不起作用,您的代码或本地防火墙都有问题,您必须在查看路由器内容之前解决这些问题

本地防火墙很容易检查,只需完全禁用所有防火墙,看看是否可以连接到本地主机。如果您无法连接完全禁用的防火墙,则首先需要修复的是您的代码

如果这确实有效,那么就允许您的服务器应用程序通过防火墙接受流量。打开连接的客户端应用程序本身不应该有任何防火墙问题,因为这是防火墙通常不会干扰的请求流量

如果/当您可以连接到本地主机时,您可以尝试通过internet、路由器进行连接。最有可能的是,您的问题是您的路由器没有将您要打开的端口转发到您的计算机。我自己只手动实现过端口转发,在处理问题之前,您可能应该自己研究一下为什么需要端口转发。基本上,您希望客户端连接到您在whatsmyip.org或任何地方找到的公共ip,并希望路由器将您在局域网配置的支持选项卡中找到的内容转发到LAN ip。这方面的分步说明是针对路由器的,但通常是直接的,路由器管理页面中通常有“防火墙”和/或“高级”选项卡或其他内容


您最终可以尝试实现upnp,这从一开始看起来并不太复杂,但对于您所处的学习阶段来说可能太复杂了。

首先,我会通过在同一台机器上运行服务器和客户端来检查以确保任何本地设置和其他设置都是正确的,并直接使用localhost或127.0.0.1作为ip地址。如果这不起作用,您的代码或本地防火墙都有问题,您必须在查看路由器内容之前解决这些问题

本地防火墙很容易检查,只需完全禁用所有防火墙,看看是否可以连接到本地主机。如果您无法连接完全禁用的防火墙,则首先需要修复的是您的代码

如果这确实有效,那么就允许您的服务器应用程序通过防火墙接受流量。打开连接的客户端应用程序本身不应该有任何防火墙问题,因为这是防火墙通常不会干扰的请求流量

如果/当您可以连接到本地主机时,您可以尝试通过internet、路由器进行连接。最有可能的是,您的问题是您的路由器没有将您要打开的端口转发到您的计算机。我自己只手动实现过端口转发,在处理问题之前,您可能应该自己研究一下为什么需要端口转发。基本上,您希望客户端连接到您在whatsmyip.org或任何地方找到的公共ip,并希望路由器将您在局域网配置的支持选项卡中找到的内容转发到LAN ip。这方面的分步说明是针对路由器的,但通常是直接的,路由器管理页面中通常有“防火墙”和/或“高级”选项卡或其他内容


您最终可以尝试实现upnp,这从一开始看起来并不太复杂,但对于您所处的学习阶段来说可能太复杂了。

我100%知道该代码片段是有效的。确保您的防火墙没有阻止您的应用程序,路由器也是如此。如果你需要
关于如何使用它的完整示例让我知道。记住使用System.Net和System.Webwhat is Settings.Log.WriteGetMy:My IP是:+requestHtml;从何处获得设置?抱歉,设置是我在该特定项目中使用的自定义命名空间。请放弃它。我100%知道那个代码片段是有效的。确保您的防火墙没有阻止您的应用程序,路由器也是如此。如果你需要一个关于如何使用它的完整示例,请告诉我。记住使用System.Net和System.Webwhat is Settings.Log.WriteGetMy:My IP是:+requestHtml;从何处获得设置?抱歉,设置是我在该特定项目中使用的自定义命名空间。请放弃。您需要在路由器设置中将正在使用的TCP端口转发到计算机。您需要在路由器设置中将正在使用的TCP端口转发到计算机
echo $_SERVER['REMOTE_ADDR'];