【问题标题】:Can i Make my Devices Listen through Same port我可以让我的设备通过同一个端口监听吗
【发布时间】:2014-02-06 17:49:47
【问题描述】:

我是 android 新手,我想使用套接字编程创建一个基于 WiFi 的聊天引擎。我能够使用this 检索连接到 WiFi 的设备列表 项目,现在我想在我的应用程序上创建一个服务器套接字来监听某个端口(比如 6066)上的连接。

我担心的是,与我的应用一起部署的 WiFi 网络上的所有设备都会在同一个端口上启动它们的服务(比如有 192.168.1.100:6066 和 192.168.1.101:606)。当我想连接6066端口的设备时,它会接受吗?

我考虑过的另一种方法是在 serversocket 中将端口指定为 0。它将分配一个临时端口,但是客户端如何知道分配了哪个端口来请求连接?

【问题讨论】:

  • 不同主机上的端口不会混淆——只要或者 IP地址或者端口是唯一的,你就没有问题因为IP和端口的组合是唯一的。但是,给定设备上的某些东西可能已经在使用您想要的端口。最常见的是,这是您自己项目的另一个版本,但也可能是其他人。另一种可能性是“刚刚使用”端口而没有允许立即重新使用的标志。

标签: android sockets port android-wifi serversocket


【解决方案1】:

是的,您可以为所有客户端设置相同的端口号。但是你不能分配 0 作为端口号,总是分配 1024 以上的端口号。这里没有自动分配。一切都由用户分配。

【讨论】:

  • 这里所有客户端都充当其他客户端请求的服务器,这是否可能我的意思是我有 10 个设备,每个设备都运行具有相同端口的服务器代码,并且每当一个设备想要连接到另一个设备时,它都会请求相同的设备港口
  • 是的,可以使用相同的端口号。除非您提供的 IP 地址不同,否则应该没有问题。端口号基本上是你电脑中的应用程序的地址,所以它与应用程序存储在其他设备中的地址无关。
  • 您确实可以指定零作为端口号。这意味着系统选择了一个临时端口。
猜你喜欢
  • 2012-03-27
  • 2021-01-09
  • 1970-01-01
  • 1970-01-01
  • 2016-06-22
  • 1970-01-01
  • 2011-01-06
  • 2019-09-01
  • 2020-08-30
相关资源
最近更新 更多