在具有相同IP的多个客户端中处理来自服务器的接收值

时间:2019-06-11 10:40:56

标签: c# multithreading sockets server client

我要连接到具有多个客户端的服务器,并且某些客户端位于同一台计算机和相同的IP地址中。我的意思是,在我的应用程序中,用户可以以不同的形式连接到服务器并同时从服务器获取价值。我阅读了有关多客户端的更多信息,但所有这些都是关于不同计算机或不同应用程序中的多客户端的。我认为,我使用字典来处理客户端服务器中的接收值,该字典可保存连接的客户端和每个接收到的值设置在队列中,如果不运行任何接收到的值,则从队列等获取数据,但是我不知道我怎么知道这个收到的值是来自客户端的请求。 我尝试解决此问题约3天,但我做不到。请您帮我

1 个答案:

答案 0 :(得分:0)

确保最好指定平台,环境和...,当您有疑问时,一般情况下没有什么不同。顺便说一句,我认为它是.Net。

.Net平台

如果您进行套接字编程,并且想要识别来自同一计算机/ IP中多个客户端的不同请求,则Client.RemoteEndPoint类中的TcpClient会为您提供。实际上,它是由IP:Port组成的,这是让您了解其分别工作方式的关键,这在每种编程语言中的出现可能性都很高,因为在同一台计算机中,每个端点都需要具有相同的IP,但端口不同。因此,即使在同一台计算机上,您也可以将其用作ID(IP:Port),并可以将其用作字典中的键。

一般情况

对于每种平台,或者在不使用内置框架的情况下,通常可以将服务器视为类似于WebServer的服务器(我认为它比较复杂),但是即使它们是2个不同的会话,WebServer也会如何自行处理每个请求在1台计算机和1个端口的2个浏览器中?因此,您应该以这种方式实现您的代码。实际上,您应该在每个请求上添加一些额外的信息,并自行给他们一些独特的信息(ID)。然后,您可以彼此识别它们。