【问题标题】:Ports with C++ Server/Client applications带有 C++ 服务器/客户端应用程序的端口
【发布时间】:2011-07-29 12:05:44
【问题描述】:

如果我创建一个c++服务器/客户端应用程序,我用来通信的端口是否需要在服务器和客户端机器的路由器上打开

或者我还能采取什么其他方法?客户端计算机需要从服务器接收信息,但我无法打开任何端口,因为它位于学校网络上....

[编辑]

嗯,我的设置是在服务器上运行的 php 页面,说当我按下 hello 时,服务器通过 php 建立 ssh 连接并向机器发送 shell 命令。该服务器正在运行学校服务器,我确实可以通过 ssh 访问并从那里运行我所有的东西。客户端计算机将是我的电脑,它在未连接到服务器的学校 wifi 上运行。服务器将尝试与我的计算机的公共 ip 建立 ssh 连接,该计算机在学校 wifi 之外运行(没有端口打开/可以 ssh 输出,但没有 ssh 输入)。您提到的这些方法是否可以实现这一点,尤其是 connect.c,因为我无法从服务器上运行 putty,而我可以从 php 调用 connect.c。

【问题讨论】:

  • 重新标记的问题;考虑转到 superuser.stackexchange.com
  • 您应该提供更多信息。您的应用程序传输协议是 TCP 还是 UDP? “它在学校网络上”:哪台计算机在网络上,您无法打开任何端口?客户端?服务器?两个都?您期望来自 Internet 的连接,还是仅在学校网络内?

标签: client-server firewall tunnel transport


【解决方案1】:

语言的选择在此无关紧要。

不需要在任何路由器上“打开”端口,除非您的流量必须通过它。在同一网络(或子网)中的普通对等主机上几乎不会有任何防火墙策略,即使在学校中也是如此。

从技术上讲,交换机可以阻止 peer-2-peer 流量(意味着流量不发往传出网关),但这并不常见。

当然,如果学校不允许大多数端口上的出站 (WAN) 流量,那就太倒霉了,他们是绝对正确的 :)

你可以看看

很容易用谷歌搜索

【讨论】:

  • 哦,别忘了很明显:使用开放的端口。顺便说一句,如果您在代理或 NAT-ting 防火墙后面,则只能依赖出站连接,除非您可以在路由器上配置端口转发
  • 我在问题中添加了更多内容,请查看。
【解决方案2】:

要建立 TCP/IP 连接,客户端只需访问 服务器 端口即可。连接是全双工的,因此数据可以从客户端流向服务器,反之亦然。

如果您在应用程序中使用 UDP(一种无连接协议),那么会发生什么在很大程度上取决于防火墙或路由器,以及它是否为您的服务执行连接跟踪。

除非您提供有关您的服务以及客户端和服务器端的网络设置的一些额外信息,否则我们无法提供更具体的信息。

【讨论】:

  • 服务器是学生专用的学校服务器,用于html、php等。我可以通过 ssh 访问的服务器。客户端将在我没有 ssh 访问权限的学校 wifi 上。服务器将是做大部分工作的人。因此,服务器需要对客户端具有 ssh 访问权限。我的想法可能是在客户端上创建一个脚本,该脚本不断地 ssh 进入服务器并检查是否传递了任何命令,如果服务器收到说按下 hello 按钮将是一个命令,查询将向客户端返回任何命令并运行它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多