c++ - 有没有办法只允许一个线程使用套接字?
问题描述
我目前正在一个程序上使用 HSM,其中我有一个使用套接字的多线程客户端-服务器应用程序。
它是这样工作的:
服务器的主线程等待并接受 N 个客户端,每次来自客户端的新请求到达时,都会创建一个新线程,客户端必须在其中验证自己(使用登录名),然后新套接字绑定到该通信。
由于安全规范,我需要只有经过身份验证的客户端才能与服务器通信,我假设这种情况:
客户端client1
验证自己,并绑定一个新的套接字(例如 id=1234)。另一个client2
未经过身份验证的客户端看到它client1
正在使用套接字 1234,因此client2
开始使用套接字 1234 与服务器通信,即使它未经过身份验证。
这种情况会发生吗?
如果可以的话,我的想法是允许以某种方式只使用一次套接字,这样只有第一个连接到它的客户端(经过身份验证的客户端)可以使用它。有没有办法做这样的事情?我应该考虑其他想法吗?
解决方案
推荐阅读
- reactjs - TypeError:无法读取注销按钮上未定义链接的属性“推送”
- javascript - svg 带双边框的多边形
- azure-data-factory-2 - 在 Azure 数据工厂的复制活动中添加动态列
- anova - 2way 非参数方差分析的替代方案
- python - 根据日期对字典中的键进行分组?
- datatable - 数据表中的非聚集索引
- python - 如何从本地连接到 GCP Memorystore redis?
- c# - 为什么错误处理中间件在asp中不起作用
- ios - 'textureNamed(_:)':在需要时使用或提前存储在属性中?
- docker - 为什么 Docker 总是生成 none:none 图像(使用过什么选项)?