Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 如何检查用户是否已通过UDP进行身份验证_Sockets_Network Programming_Udp - Fatal编程技术网

Sockets 如何检查用户是否已通过UDP进行身份验证

Sockets 如何检查用户是否已通过UDP进行身份验证,sockets,network-programming,udp,Sockets,Network Programming,Udp,假设我必须编写一个UDP服务器,它应该在第一条消息中接收每个客户端的身份验证令牌,然后在一段时间后接收不同的数据。这个UDP服务器显然应该检查某些客户端是否已经过身份验证。我该怎么做?我应该为每个(IP地址、端口)对存储“已验证”标志吗?可以吗?如果是这样,如果多个客户端拥有相同的IP地址(例如,他们从同一个互联网提供商共享IP地址),会发生什么情况?我想你不能。您需要在每条消息中包含令牌。多个请求可以来自同一IP,例如从NAT后面连接的客户端。这是一种罕见的情况,在这种情况下,您可能希望在服务

假设我必须编写一个UDP服务器,它应该在第一条消息中接收每个客户端的身份验证令牌,然后在一段时间后接收不同的数据。这个UDP服务器显然应该检查某些客户端是否已经过身份验证。我该怎么做?我应该为每个(IP地址、端口)对存储“已验证”标志吗?可以吗?如果是这样,如果多个客户端拥有相同的IP地址(例如,他们从同一个互联网提供商共享IP地址),会发生什么情况?

我想你不能。您需要在每条消息中包含令牌。多个请求可以来自同一IP,例如从NAT后面连接的客户端。

这是一种罕见的情况,在这种情况下,您可能希望在服务器上使用多个UDP套接字,并
connect()
将它们中的每一个连接到一个经过身份验证的客户端,以便您只能从每个经过身份验证的客户端接收关于每一个的进一步消息。您必须通过hat套接字发送第一个回复,在收到第一个回复后,必须写入一个Dentare客户端以相应地调整其目的地。

因此,我应该为每个连接的客户端提供一个UDP套接字,对吗?