gpt4 book ai didi

sockets - 在公共(public) Internet 上使用套接字的视频聊天应用程序

转载 作者:行者123 更新时间:2023-12-03 12:05:24 26 4
gpt4 key购买 nike

我正在开发一个 Java 视频聊天应用程序。我使用 Java 套接字进行通信。但似乎我必须设置确切的 IP 和端 Eloquent 能连接套接字服务器。我的设计是:

  • 两个客户端注册都将其 ip 报告给服务器,然后服务器交换它们的信息。
  • 选择一个客户端(A)作为视频聊天套接字服务器,并将其 ip 和端口报告给服务器。服务器将告诉另一个客户端(B)他的视频聊天服务器 IP 和端口。
  • 客户端 B 将自己注册到客户端 A。现在 A 和 B 可以直接通信。

  • 问题来了。如果 A 有一个公共(public) Internet IP,那么一切正常。问题是如果客户端 A 和 B 都在路由器后面,例如客户端 A 和 B 在不同的大学,他们如何与套接字通信?

    最佳答案

    好吧,这里有一些含义
    1. 您必须在路由器 (NAT) 中打开端口,以便它知道正在监听该端口的 PC/设备的 IP。您可以在大多数路由器中打开特定端口或一系列端口的端口,也可以配置 DMZ 主机,以便进入的所有内容都进入该主机。
    2. 您必须在这些设备上配置防火墙以允许此/这些端口/s。
    这种方法的问题在于,每次重置路由器或更换新路由器时,都必须重新配置它。我不推荐 NAT Port Mapping 或 IGD,它们都会为恶意滥用制造“漏洞”,而且我认为大学不允许您在他们的路由器中使用此类软件。
    另一种解决方案是将服务器用作网关,我的意思是,使两个客户端连接的服务器充当网关或路由器。当客户端 A 连接到服务器时,服务器会保存一个已连接客户端的列表并通告这些客户端,当客户端 B 想要连接到客户端 A 时,服务器会做一个到另一个的流量,它可能被手机、平板电脑、 PC 等。这样您就不会遇到路由器 (NAT) 问题,因为两个客户端都与服务器建立了连接。当然,这涉及到服务器端的大量工作,它必须是专用服务器。就像 Whatapps 或 Google Talk 之类的任何聊天应用程序一样,客户端与服务器交谈,服务器将信息路由到适当的客户端。

    关于sockets - 在公共(public) Internet 上使用套接字的视频聊天应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22193743/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com