处理从具有相同 IP 的多个客户端中的服务器接收值
Posted
技术标签:
【中文标题】处理从具有相同 IP 的多个客户端中的服务器接收值【英文标题】:Handle receive values from server in multi clients with same IP 【发布时间】:2019-10-25 18:27:27 【问题描述】:我想在同一台计算机和相同的 IP 地址中连接到具有多个客户端和一些客户端的服务器。我的意思是,在我的应用程序中,用户可以以不同的形式连接到服务器并同时从服务器获取价值。我阅读了有关多客户端的更多信息,但所有这些都是关于不同计算机或不同应用程序中的多客户端的。我认为,我使用字典处理从客户端服务器接收到的值,该字典保存连接的客户端和队列中设置的每个接收到的值,如果没有运行任何接收到的值,则从队列等获取数据,但我不知道我怎么知道这个收到的值是针对客户的哪个请求的。 我尝试在 3 天左右解决这个问题,但我做不到。如果你能帮助我,请帮助我
【问题讨论】:
【参考方案1】:当然,最好指定您的平台、环境和......当您对此有疑问时,一般情况下没有什么不同。顺便说一句,我认为它是 .Net。
.Net 平台
如果您进行套接字编程并且想要识别来自同一计算机/IP 中多个客户端的不同请求,那么来自 TcpClient
类的 Client.RemoteEndPoint
可以为您提供。实际上,它由 IP:Port 组成,它是让您了解它如何单独工作的关键,在每种编程语言中很有可能是这样的,因为在同一台计算机上,每个端点都需要具有相同的 IP 但不同的端口。因此,即使在同一台计算机上,您也可以将其作为 ID (IP:Port),并将其用作字典中的键。
一般情况
在每个平台的某些通用方式或不使用内置框架的情况下,您可以将您的服务器视为 WebServer(我认为它更复杂),但 WebServer 将如何自行处理每个请求,即使它们是 2 个不同的会话在来自 1 台计算机和 1 个端口的 2 个浏览器中?所以你应该以这种方式实现你的代码。实际上,您应该在每个请求上添加一些额外的信息,并自己给他们一些独特的信息(ID)。然后你就可以将它们彼此识别了。
【讨论】:
以上是关于处理从具有相同 IP 的多个客户端中的服务器接收值的主要内容,如果未能解决你的问题,请参考以下文章
Apple Push Notification Service 和多个服务器的问题