使用中间服务器创建点对点连接

2024-03-19

我想连接两个客户端(通过 TCP/IP 套接字)。客户端可以使用中间服务器发现彼此。一旦客户端发现彼此,服务器就不应该有任何参与。

我对此做了一些研究,发现很多人建议JXTA。但我想自己从头开始创建协议(因为将来我可能也必须使用 WebSocket 实现相同的协议(当我的客户端是浏览器时))。目前,我的客户端可以是桌面应用程序或移动应用程序。

我的问题是:

  1. 客户端如何在服务器上发现彼此?如果服务器向彼此发送客户端的全局 IP 地址,该信息是否足以创建点对点连接?如果客户端位于同一 LAN 网络而服务器位于不同 WAN 上怎么办?

  2. 客户端有动态IP地址。即使有活动套接字,他们的 IP 也会突然改变吗?

  3. 点对点连接对于非连续数据的传输是否可靠(例如在聊天应用程序中)?

[注意:点对点连接是指通过将其中一个客户端作为临时套接字服务器来建立客户端-服务器 TCP/IP 套接字连接(使用 Java)]

提前致谢。


1)当客户端连接到服务器时,他们必须通知服务器他们将为来自其他客户端的传入连接保持开放的端口号。服务器将知道客户端的IP地址。然后服务器需要将这些详细信息传达/发送给另一方/客户端。客户的实际位置没有任何区别。如果两个客户端位于同一网络上,网络路由器将找到它们并缩短它们的通信路径。

2) 动态 IP 地址在活动连接期间不能更改 - 如果更改,连接将被断开,并且两个客户端都必须在 1) 中通过服务器重新启动连接

3) Yes

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用中间服务器创建点对点连接 的相关文章

  • 使用 kryo 注册课程的策略

    我最近发现了 kryonet 库 它非常棒并且非常适合我的需求 然而 我遇到的一个问题是制定一种好的策略来注册所有可以转移的类 我知道我可以在每个对象中编写一个静态方法 该方法将返回它使用的所有类的列表 但我真的不想这样做 为了我自己的时间
  • 在网络驱动器上安装带有 python win32 扩展的 python

    我需要保持大量 Windows XP 计算机运行相同版本的 python 并带有各种模块 其中之一是 python win32 我考虑过在所有客户端机器都安装的网络驱动器上安装python 然后只需调整客户端上的路径即可 Python 从网
  • 从应用程序打开无线设置

    我想直接从我的应用程序打开 设置 gt 无线和网络 我怎样才能做到这一点 尝试这个 startActivity new Intent android provider Settings ACTION WIRELESS SETTINGS 或者
  • 使用 TCP 时是否需要使用校验和来保护我的消息?

    使用 TCP 作为网络协议 在通过线路发送消息之前 我会为每条消息的大小 以及可能的校验和 添加前缀 我想知道 计算和传输消息的校验和是否有意义 以确保消息将被不变地传递 如果以及何时传递 例如因为一些网络错误 目前 我在发送消息本身之前发
  • Android:如何监控WiFi信号强度

    当信号强度发生变化时我会收到通知 我尝试创建以下方法并在 onCreate 中调用它 private void initializeWiFiListener Log i TAG executing initializeWiFiListene
  • IPAddress.[Try]Parse 将 192.168 解析为 192.0.0.168

    我有以下场景 IPAddress ip IPAddress TryParse 192 168 out ip if ip null do something with IP 我预计解析会失败 但它被解析为 192 0 0 168 我在这里缺少
  • 停止 TcpListener 的正确方法

    我目前正在使用 TcpListener 来处理传入连接 每个连接都有一个线程用于处理通信 然后关闭该单个连接 代码如下 TcpListener listener new TcpListener IPAddress Any Port Syst
  • SOA、客户端-服务器、Web 服务 - 有什么区别? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在阅读了一些有关 SOA Web 服务和客户端 服务器架构主题的文献之后 我真的对这些术语感到困惑 因为看不出它们之间的真正区别 有人
  • 在 win32/cygwin 上编译 haskell 模块网络

    我正在尝试编译 Network HTTP http hackage haskell org package network http hackage haskell org package network 在 win32 cygwin 上
  • 如何限制 Android 设备网络速度以进行测试

    我正在测试一个 Android 应用程序 该应用程序在低质量网络上管理其内容时遇到一些问题 我无法验证问题是否仍然存在 因为以我家的网络速度 120mb s 在我设法开始复制路线之前 所有内容都已经下载完毕 在这种情况下 不能选择使用 An
  • 如何从 Android 应用程序检测 WiFi 网络中连接的所有设备

    我正在开发一个应用程序 我需要在其中扫描 WiFi 网络并显示所有已连接设备的列表 允许用户点击设备 应用程序应显示该特定设备的所有硬件信息 这里的硬件是指 RAM 存储介质 存储容量 设备名称 设备 IP 地址等 现在 该设备可以是 Xb
  • iPhone Simulator - 模拟慢速连接?

    有没有办法减慢 iPhone 模拟器的互联网连接速度 以便模拟当您处于蜂窝网络速度较慢的位置时应用程序的反应 如何安装 Apple 的网络链接调节器 这些说明截至 2019 年 10 月有效 警告 如果您刚刚升级到新版本的 macOS 确保
  • udp客户端服务器从拉模型更改为推模型[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我已经实施了udp client和 udp server 其中服务器和客户端遵循拉模型 服务器仅在客户端请求时推送数据
  • Java 客户端到服务器未知来源

    我有一个简单的乒乓球游戏 需要通过网络工作 服务器将创建一个带有球和 2 个球棒位置的游戏 当客户端连接到服务器时 服务器将创建一个名为 PongPlayerThread 的新类 它将处理客户端到服务器的输入和输出流 我的服务器工作100
  • 尝试对无法访问的主机进行套接字操作

    一位客户在连接到我们的服务器服务的 WCF 客户端上报告了此错误 消息 尝试对无法访问的主机进行套接字操作 类型 System Net Sockets SocketException 从这个链接http msdn microsoft com
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • javax.net.ssl.SSLException:没有可用的 PSK。无法恢复

    我正在使用 Jetty 客户端发送传出请求 在 Java 10 下完美运行的代码在 Java 11 下突然出现以下异常 javax net ssl SSLException No PSK available Unable to resume
  • 从网络中的另一台计算机访问本地GAE SDK服务器

    我有开发服务器 来自 google appengine sdk 在我的 Ubuntu 计算机上运行 我可以通过导航到 localhost 8080 来访问我的网站 我想从网络中的另一台计算机 装有 Vista 操作系统 访问该站点 ifco
  • 使用的端口未显示在 netstat -a 结果中

    最近当我尝试启动 active mq 默认情况下在端口 61616 上启动 时 这个问题开始出现 但突然间 该端口上不再出现 JVM BIND 问题 即使重新启动计算机后问题也没有消失 主要问题是 Windows 7 上的 netstat
  • 无法访问127.0.0.1

    我不知道这种情况何时开始发生 但结果是 127 0 0 1 无法在任何地方的任何端口上工作 例如 浏览器显示无法连接 以下是我的研究结果 localhost COMPUTER NAME 和实际 IP 地址都工作正常 我的主机文件中没有什么特

随机推荐

  • 防止CSRF?

    我已经从这里看到了一些问题 stackoverflow 并且THIS http www codinghorror com blog 2008 10 preventing csrf and xsrf attacks html发帖了 但我还有一
  • 使用字符串分区键与整数分区键的 Hive/Impala 性能

    是否建议将数字列用作分区键 当我们对数字列分区和字符串列分区进行选择查询时 性能会有什么差异吗 好吧 如果你查阅 Impala 官方文档 就会有所不同 我不会详细说明 而是粘贴文档中的部分 因为我认为它说得很好 虽然使用 STRING 列作
  • 更新到 Angular 7 后出错。类型为“string | 的参数” ArrayBuffer' 不可分配给'string' 类型的参数

    我将我的项目从 Angular 6 升级到 Angular 7 我的项目中有一个文件上传组件 升级后会出现编译器错误 onUpload const fileReader new FileReader fileReader onload gt
  • is_account_page() 的 WooCommerce 条件,但仅限登录部分

    我需要测试用户是否在帐户页面上 但仅限于标题所述的登录部分 有没有办法做到这一点 可能你需要结合 is user logged in with is account page 这边走 if is user logged in is acco
  • 在哪里定义 topic.metadata.refresh.interval.ms?

    我正在对 kafka 进行一些测试 希望很快就能将其放入我的生产堆栈中 我正在使用这些文件kafka console producer sh and kafka console consumer sh测试kafka的功能 我创建了一个包含
  • 编写日志传送自动化脚本

    是否可以编写所有日志传送配置的脚本 例如 我需要编写一个作业 启动从服务器 A 到服务器 B 的两个数据库的日志传送 该作业将在服务器 A 上运行 顺便说一句 两者都是 SQL 2008 R2 Enterprise 服务器A上有一个共享 服
  • PyCharm:版本控制 .idea 文件夹,同时在开发人员之间保留不同的解释器

    我们使用 PyCharm 作为项目的 Python IDE 开发人员使用不同类型的操作系统设置 例如 python 路径对于我们中的某些人来说是不一样的 有些人将本地解释器存储在不同的位置或远程解释器 不幸的是 python解释器路径存储在
  • Scala:输入流到数组[字节]

    使用 Scala 从 InputStream 读取字节数组的最佳方法是什么 我可以看到您可以将 InputStream 转换为 char 数组 Source fromInputStream is toArray 怎么样 Stream con
  • 在 Clojure 中使用 WSDL

    我需要使用 WSDL Web 服务 而到目前为止我看到的 Java 客户端代码看起来臃肿且复杂 我想知道 Clojure 中是否存在更清晰的解决方案 以便我可以在 Clojure 中实现该部分并向 Java 代码公开更简单的 API cd
  • Firebase createCustomToken() 在本地模拟器中返回无效令牌

    我正在使用 firebase 身份验证来处理我的 Web 应用程序的用户帐户 当用户输入有效的登录凭据时 我使用 firebase admin SDK 在云函数中生成 JWT 该 JWT 被发送回客户端 然后使用 firebase 进行身份
  • matplotlib.rc 和 matplotlib.pyplot.rc 有什么区别?

    据我所知 在 matplotlib 中 您可以使用 rc 或 rcParams 来自定义绘图的样式 但是 这些函数似乎存在于两个级别 例如 matplotlib rc 与 matplotlib pyplot rc 或 matplotlib
  • 在 jQuery 中获取鼠标滚轮事件?

    有没有办法获取鼠标滚轮事件 不讲scroll事件 在 jQuery 中 document ready function foo bind mousewheel function e if e originalEvent wheelDelta
  • 如何使用QMake的子目录模板?

    我开始学习Qt 我即将离开 Visual Studio 世界 正在寻找一种使用 QMake 组织项目结构的方法 我找到了 子目录 模板 但我很难理解它 我的项目结构如下所示 project dir main cpp project pro
  • 如何将 Room 数据库导出为 .db 以下载文件以便稍后使用?

    如何将 Room 数据库导出到 db 文件以便稍后使用 我想将其导出到 Android 设备存储中的下载文件夹 我已经设置导出到 CSV 但现在我需要导出到 db 这样 如果用户正在切换设备并且需要其他设备上的数据 我可以重新导入它 有没有
  • 排毒笑话测试不是并行运行的

    使用 Jest 实现自动化排毒 您好 我正在使用以下命令从 CLI 运行排毒测试 detox test r maxWorkers 2 实现并行执行 已经有一个模拟器以名称 iphone 5s Detox 启动 并以 maxWorkers 2
  • 标签可以在 git filter-branch 和 rebase 之后自动移动吗?

    edit问题归结为 可以git rebase也被指示对标签进行变基吗 但是对最初问题的回答也会有所帮助 Asking 如何将过去添加到 git 存储库中 https stackoverflow com questions 3147097 h
  • Word 和 Python - 创建目录

    我正在使用 python 的 pywin32 client 扩展并构建 Word 文档 我尝试了很多很好的方法来生成目录 但都失败了 我认为我想要做的是调用 ActiveDocument 对象并使用 MSDN 页面中的以下示例创建一个对象
  • Yii ,从 $_FILES 保存图像,但不使用模型

    这可能吗 这是有模型的 CUploadedFile getInstance model newsimage model gt image gt saveAs image path 但我不想创建模型只是为了保存我的图像 我实际上需要这个的目的
  • 保存的位图是黑色的

    我创建了一个带有文本的位图 我可以在图像视图中查看它 但是当我保存位图时 我只得到一个黑色图像 我花了三个小时研究类似的问题 但没有一个对我有用 这是代码 谢谢你的帮助 public void createBitmap Bitmap Lab
  • 使用中间服务器创建点对点连接

    我想连接两个客户端 通过 TCP IP 套接字 客户端可以使用中间服务器发现彼此 一旦客户端发现彼此 服务器就不应该有任何参与 我对此做了一些研究 发现很多人建议JXTA 但我想自己从头开始创建协议 因为将来我可能也必须使用 WebSock