首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取NIO.2服务器中客户端的IP地址列表

获取NIO.2服务器中客户端的IP地址列表
EN

Stack Overflow用户
提问于 2012-09-19 10:29:29
回答 1查看 291关注 0票数 0

在基于AsynchronousServerSocketChannel和AsynchronousSocketChannel的服务器中,如何检查来自给定IP地址的连接是否已经存在?我希望向来自已连接的IP地址的连接发送特定消息(要求它稍后重试;我正在处理的是非常特定的客户端LAN,如果共享而不是由服务器强制串行化,则其带宽利用率将很低)。但是,我没有办法获得IP地址列表来搜索相同的IP地址是否已经有连接。除了向ConcurrentSkipListSet之类的东西插入每个新连接的IP地址(并在关闭时将其删除)之外,还有什么更优雅/更有效的方法来实现这一点吗?

此外,我还想定期从所有打开的连接中收集一些网络统计信息(比如上传了多少块文件)。我想出的唯一有效的方法是使用ConcurrentLinkedQueue将更新从完成处理程序(块发送网络写入)发送到信息收集线程,每当有东西插入到队列中时唤醒线程。我假设唤醒操作是非阻塞的,但我不知道它可能有多昂贵,因为我确定它至少涉及一个互锁的CPU指令(这意味着内存围栏,并进一步影响执行速度等)。还有其他建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-19 17:54:09

你必须维护你自己的数据结构。TCP为您提供的只是套接字,您可以从中获取它们的远程地址和端口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12487770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档