在 C++ 中解析这个的最好方法是什么?

2023-11-26

在我的程序中,我有以下格式的“服务器地址”列表:

host[:port]

这里的括号表示port是可选的。

  • host可以是主机名、IPv4 或 IPv6 地址(可能采用“括号内”表示法)。
  • port,如果存在,可以是数字端口号或服务字符串(例如:“http”或“ssh”)。

If port存在并且host是 IPv6 地址,host must采用“括号括起来”的表示法(示例:[::1])

以下是一些有效的示例:

localhost
localhost:11211
127.0.0.1:http
[::1]:11211
::1
[::1]

还有一个无效的例子:

::1:80 // Invalid: Is this the IPv6 address ::1:80 and a default port, or the IPv6 address ::1 and the port 80 ?
::1:http // This is not ambigous, but for simplicity sake, let's consider this is forbidden as well.

我的目标是将这些条目分为两部分(显然host and port)。我不在乎host or port只要它们不包含非括号括起来的内容,都是无效的: (290.234.34.34.5可以host,将在下一步中被拒绝);我只是想将这两部分分开,或者如果没有port部分, 至know不知何故。

我尝试做一些事情std::stringstream但我想到的一切看起来都很老套,而且不太优雅。

你会如何做到这一点C++ ?

我不介意以下答案C but C++是优选的。任何boost也欢迎解决方案。

谢谢。


你看过吗提升::精神?不过,这对于你的任务来说可能有点过分了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C++ 中解析这个的最好方法是什么? 的相关文章

随机推荐

  • 永久 PowerShell 变量

    有没有办法在 PowerShell 中定义变量 以便当我打开新的 PowerShell 窗口时 它会保持相同的值 我需要这个变量来保留其值 因为我需要时不时地重新启动我的服务器 并且我不想丢失这些值 储藏 variable export c
  • 为什么 xdebug 没有出现在 phpinfo() 中

    我正在尝试进行以下设置工作 Windows 7 64 位 XAMPP 1 7 4 XDebug php xdebug 2 1 0 5 3 vc9 x86 64 dll 当我从 Xampps 主页运行 phpinfo 时 XDebug 它没有
  • 使用go静态文件服务器时如何自定义处理找不到文件?

    所以我使用 go 服务器来提供单页 Web 应用程序 这适用于为根路由上的所有资产提供服务 所有 CSS 和 HTML 均已正确提供 fs http FileServer http Dir build http Handle fs 所以当网
  • 在 CouchDB 中按键返回唯一值

    有没有办法在 CouchDB 中执行以下操作 一种通过给定键返回唯一 不同值的方法 SELECT DISTINCT field FROM table WHERE key key1 key1 gt somevalue key1 gt some
  • 具有有关文件的自定义元数据的 ItemGroup

    我正在尝试创建一个 文件 任务项组 其中包含名为 TargetPath 的元数据属性 其中填充了文件的相对路径 Example 对于这些路径 D 测试 Blah exeD 测试 配置 fun configD Test en US my re
  • 未找到类异常 com.squareup.okhttp.logging.HttpLoggingInterceptor

    即使在添加依赖项并导入类之后 我仍然收到 java lang NoClassDefFoundError com squareup okhttp logging HttpLoggingInterceptor 有人可以帮忙吗 Gradle 构建
  • 在 Angular 中更新/合并 i18n 翻译文件

    我们最近决定为我们的应用程序支持多种语言 Angular 13 x 经过研究 我们决定使用angular localize看起来很适合我们的需求的包 一切似乎都在解决唯一的问题 即在后续的构建和更改中保持翻译文件最新 因此 请遵循 Angu
  • 取消 DataAdapter.Fill()

    设想 我们有一个附加到 DataAdapter 数据表 的 DataGridView 我们在单独的线程 使用 delegate 和 beginInvoke 中使用 adapter fill query datatable 将数据加载到数据表
  • 通过 Node JS 使用文件内容确定 MIME 类型

    似乎所有流行的 Node js MIME 类型库都只是使用文件扩展名 而不是通过查看文件来确定 MIME 类型 有没有一种好方法可以使用 Node 跳转到文件并智能地确定文件的 MIME 类型 以防扩展名不存在 确实感觉很可惜 最受欢迎的M
  • SQL Server Raiserror 不会在 .NET 客户端中引起异常

    我在 SQL Server 2005 数据库上有一个存储过程 其中有如下语句 IF Condition 0 BEGIN RAISERROR some error message 16 1 RETURN END 它是从 C 客户端调用的 如下
  • 如何将 List 绑定到 gridview?

    这可能是一个非常奇怪的问题 因为通常人们只将复杂类型绑定到网格视图 但我需要绑定一个 Int 列表 对于字符串也是如此 通常 由于要绑定的属性使用对象的属性名称 但是当使用 Int 或 String 时 该值正是对象本身 而不是属性 获取对
  • __init__.py 的目的是什么? [复制]

    这个问题在这里已经有答案了 创建 Python 包时 我被告知创建一个名为的空白文件init py 我不明白的是为什么我需要创建这个文件 这distutils构建脚本不会修改它 所以五个构建后它仍然是空白的 它的目的是什么 它向 Pytho
  • 了解 CSS 表格单元格和百分比宽度

    我正在检查 Github 如何显示以下菜单 如果您注意到 每个菜单项都具有相同的宽度 在CSS中 我们应该给它任何百分比值 这背后的原因是什么 请注意 父 div 没有给出 display table 属性 div border 1px s
  • Android - 在活动中嵌入 Unity3d 场景 - 需要取消注册接收器?

    我成为 SO 成员已经有一段时间了 但从未真正问过问题 所以这里 My Aim 我正在尝试制作一个包含两个活动的 Android 应用程序 第一个是菜单屏幕 使用标准 Android UI 元素 其中有一个用于打开游戏活动的按钮 游戏活动将
  • 如何获取Android指南针读数?

    既然 SENSOR ORIENTATION 已弃用 那么获取罗盘航向的最佳做法是什么 老方法就是这么简单 以下是获取指南针方向并将其显示在 TextView 中的基本示例 它通过实现 SensorEventListener 接口来实现这一点
  • 更改引导程序中活动类的颜色

    我正在尝试更改 html 代码中活动类的颜色 我正在创建导航侧边栏 这是我的代码 div class col sm 2 ul class nav nav pills nav stacked nav static li class activ
  • javascript:使用 window.open() 发送自定义参数,但它不起作用

  • Android如何使用PriorityQueue读取多个BLE特征

    有点卡在这里 可能需要你的帮助 我想一次读取多个 BLE 特性 有些人建议使用 PriorityQueue 我已经知道所有的 uuid 等 只需要一种方法可以一次读取多个 谁能解释一下它究竟应该是什么样子 或者也许还有另一个更简单的解决方案
  • 谁需要为 BigQuery 查询付费?

    我仍然不清楚谁为我的数据集上的 BigQuery 查询付费 如果我与其他用户共享我的数据集并且其他用户查询它 那么谁为这些查询付费 一年前有一个类似的帖子 但我仍然不确定我是否理解在这种情况下谁付钱 如果您拥有数据集 则需要为该数据集中所有
  • 在 C++ 中解析这个的最好方法是什么?

    在我的程序中 我有以下格式的 服务器地址 列表 host port 这里的括号表示port是可选的 host可以是主机名 IPv4 或 IPv6 地址 可能采用 括号内 表示法 port 如果存在 可以是数字端口号或服务字符串 例如 htt