【问题标题】:Access to server without writing port after address地址后不写端口即可访问服务器
【发布时间】:2016-12-29 14:04:16
【问题描述】:

我正在用 C 创建我的自定义 http 服务器。sockaddr_in 看起来像这样:

my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(8080);
my_addr.sin_addr.s_addr = htol(INADDR_ANY);

我的问题是如何在地址后不写端口的情况下发送我的请求。 例如 192.168.1.100 代替 192.168.1.100:8080 或 mydomain.loc 代替 mydomain.loc:8080

【问题讨论】:

  • 你的意思是来自网络浏览器吗? http://192.168.1.100:8080? http 的默认端口是 80。AFAIK,如果你想使用不同的端口,它必须在 URL 中指定。

标签: c http port


【解决方案1】:

如何在地址后不写端口的情况下发送我的 [HTTP] 请求[?]

如果不指定特定端口,您将无法与 TCP 端点通信。但是,各种服务都有常规(默认)端口,如果用户没有明确指定,客户端软件通常会使用服务的常规端口。

HTTP 协议的常规端口是 80。如果您的服务器在该端口上运行,那么 HTTP 用户代理(例如 Web 浏览器)可能不需要您指定该端口;相反,他们会默默地为您插入它。您需要在服务器计算机上具有 root / 管理员权限才能在端口 80 或小于 1024 的任何其他端口上运行服务器软件。

【讨论】:

    【解决方案2】:

    如果您想使用任何 Web 浏览器访问您的自定义服务器,那么您必须指定自定义服务器的侦听端口,因为每个浏览器都会考虑在您提供的地址 (URL) 上侦听端口 80 的服务器。

    如何在地址后不写端口的情况下发送我的 [HTTP] 请求[?]

    如果您只想提供主机 IP 地址并使用 8080 端口作为服务器的默认监听端口,您可以制作一个简单的自定义客户端。将主机 URL 即 192.168.1.100 传递给该客户端。在客户端主体中,将套接字连接到192.168.1.1008080 地址。客户端将向您的自定义服务器发送查询,并将回复保存在.html 文件中。然后,您可以使用浏览器打开此文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多