套接字编程中的客户端到客户端消息传递

2024-03-08

我正在开发一个项目,该项目是基于 C++ 中的 WinSock 的服务器客户端应用程序。我已经完成了服务器和客户端之间通信所需的任何操作,我能够在它们之间发送和接收消息。

现在我需要知道如何完成客户端到客户端消息传递部分以及必须如何完成工作。我只知道,例如客户端A和客户端B需要相互通信,客户端A必须将消息发送到服务器,服务器接收消息并将其发送给客户端B。

如果这是正确的方法,请帮助我知道服务器应该如何了解接收者(在本例中是客户端 B)?

如果我没有清楚地解释我的问题,请告诉我。

任何帮助表示赞赏。


实现此目的的一种方法是在通过实际服务器进行一些通信后让其中一个客户端充当服务器。您需要创建自己的协议。话虽如此:

1- 客户端 A:- 嘿,服务器!。告诉客户端 B 创建一个通信服务器,以便我可以直接与他通信。

2- 服务器:-嘿,客户端 B!。启动一个服务器实例并告诉我连接属性,以便我可以中继它客户端 A,以便他可以连接到您。

3- 客户端 B:- 嘿,服务器!。我已准备好接受客户端 A 的连接请求。这是我的连接属性...

4- 服务器:-客户端 A!这是客户端 B 的连接属性。接受或保留它...我完成了..

5- 客户端 A:- 嘿,服务器 B!...我可以连接吗?...

这就是协议。所以任何客户端首先向服务器发起一个请求,其中包含消息类型“我,请求连接到客户端x..”。服务器命令客户端 x,客户端 x 响应,服务器将响应中继到发起者客户端...并且您还应该实现错误处理、拒绝策略或您可以想到的其他一些东西,以便管理整个协议。

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

套接字编程中的客户端到客户端消息传递 的相关文章

  • 使用 std::packaged_task/std::exception_ptr 时,线程清理程序报告数据争用

    我遇到了线程清理程序 TSan 的一些问题 抱怨某些生产代码中的数据争用 其中 std packaged task 通过将它们包装在 std function 中而移交给调度程序线程 对于这个问题 我简化了它在生产中的作用 同时触发 TSa
  • Directory.Delete 之后 Directory.Exists 有时返回 true ?

    我有非常奇怪的行为 我有 Directory Delete tempFolder true if Directory Exists tempFolder 有时 Directory Exists 返回 true 为什么 可能是资源管理器打开了
  • 如何在c++中读取pcap文件来获取数据包信息?

    我想用 C 编写一个程序来读取 pcap 文件并获取数据包的信息 例如 len sourc ip flags 等 现在我找到了如下代码 我认为它会帮助我获取信息 但是我有一些疑问 首先我想知道应该将哪个库添加到我的程序中 然后什么是 pca
  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • 在 C 中匹配二进制模式

    我目前正在开发一个 C 程序 需要解析一些定制的数据结构 幸运的是我知道它们是如何构造的 但是我不确定如何在 C 中实现我的解析器 每个结构的长度都是 32 位 并且每个结构都可以通过其二进制签名来识别 举个例子 有两个我感兴趣的特定结构
  • 当我们想要返回对象的引用时,为什么我们在赋值运算符中返回 *this 而通常(而不是 this)?

    我正在学习 C 和指针 我以为我理解了指针 直到我看到这个 一方面 asterix 运算符是解引用的 这意味着它返回值所指向的地址中的值 而与号 运算符则相反 它返回值存储的地址记忆 现在阅读有关赋值重载的内 容 它说 我们返回 this因
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 获取两个工作日之间的天数差异

    这听起来很简单 但我不明白其中的意义 那么获取两次之间的天数的最简单方法是什么DayOfWeeks当第一个是起点时 如果下一个工作日较早 则应考虑在下周 The DayOfWeek 枚举 http 20 20 5B1 5D 3a 20htt
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 在一个平台上,对于所有数据类型,所有数据指针的大小是否相同? [复制]

    这个问题在这里已经有答案了 Are char int long 甚至long long 大小相同 在给定平台上 不能保证它们的大小相同 尽管在我有使用经验的平台上它们通常是相同的 C 2011 在线草稿 http www open std
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表
  • Qt - ubuntu中的串口名称

    我在 Ubuntu 上查找串行端口名称时遇到问题 如您所知 为了在 Windows 上读取串口 我们可以使用以下代码 serial gt setPortName com3 但是当我在 Ubuntu 上编译这段代码时 我无法使用这段代码 se
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默
  • Cmake 链接共享库:包含库中的头文件时“没有这样的文件或目录”

    我正在学习使用 CMake 构建库 构建库的代码结构如下 include Test hpp ITest hpp interface src Test cpp ITest cpp 在 CMakeLists txt 中 我用来构建库的句子是 f
  • 为什么 gcc 抱怨“错误:模板参数 '0' 的类型 'intT' 取决于模板参数”?

    我的编译器是gcc 4 9 0 以下代码无法编译 template
  • 不同类型指针之间的减法[重复]

    这个问题在这里已经有答案了 我试图找到两个变量之间的内存距离 具体来说 我需要找到 char 数组和 int 之间的距离 char data 5 int a 0 printf p n p n data 5 a long int distan
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • WebSocket安全连接自签名证书

    目标是一个与用户电脑上安装的 C 应用程序交换信息的 Web 应用程序 客户端应用程序是 websocket 服务器 浏览器是 websocket 客户端 最后 用户浏览器中的 websocket 客户端通过 Angular 持久创建 并且
  • 当从finally中抛出异常时,Catch块不会被评估

    出现这个问题的原因是之前在 NET 4 0 中运行的代码在 NET 4 5 中因未处理的异常而失败 部分原因是 try finallys 如果您想了解详细信息 请阅读更多内容微软连接 https connect microsoft com

随机推荐

  • Invoke-Restmethod:如何获取返回码?

    有没有办法在调用时将返回码存储在某处Invoke RestMethod在 PowerShell 中 我的代码如下所示 url http www dictionaryapi com api v1 references collegiate x
  • 如何从字符串中获取size_t?

    我需要从用户输入中获取数组大小 对我来说 将输入存储为很自然size t 但是正在寻找合适的strto 功能我找不到 我刚用过strtoull since unsigned long long保证至少是 64 位 而且我无论如何都使用 C9
  • 可变值和不可变值重定义有什么区别?

    我读到 F 中的值是不可变的 然而 我也遇到了重新定义价值定义的概念 它掩盖了以前的定义 这与可变值有何不同 我问这不仅是一个理论构造 而且还询问是否有关于何时使用可变值以及何时重新定义表达式的建议 或者如果有人可以指出后者不是惯用的 f
  • 如何让 GNU Unifont 或 Free Mono 在 gvim windows 上运行?

    我正在尝试在 Windows 7 上的 gvim 中获得对符文字符的支持 我的 Fonts 目录中安装了 Free Mono 和 GNU Unifont 字体 都支持此范围 但它们没有出现在字体菜单中 gvim 给出了我收到以下行的无效字体
  • ASP.NET MVC 4 引用单父实体的多个外键

    我正在尝试开发一个 ASP NET MVC 4 应用程序 可以根据玩家的进攻 防守和助攻技能对他们进行评级 进攻 防守和助攻是球员表上的外键 引用相同的查找表 评分 我有以下父实体 public class Rating public in
  • 为什么 tzset() 在 Mac OS X 上 fork 后速度变慢了?

    Calling tzset fork之后显得很慢 如果我第一次打电话 我只会看到缓慢的情况tzset 在 fork 之前在父进程中 我的TZ环境变量未设置 我dtruss我的测试程序显示子进程读取 etc localtime对于每一个tzs
  • 如何将按钮对齐到屏幕中间?

    我正在尝试在屏幕中间放置 2 个按钮 然而 这些按钮与我现在拥有的代码重叠 实际上我并没有使用那么多 CSS 所以这可能是一个新手问题 这是我的html wrapper text align center button position a
  • 使用 AVMutableComposition 缝合(合并)视频时修复方向

    TLDR 查看编辑 我正在 Swift 中创建一个测试应用程序 我想使用以下命令将应用程序文档目录中的多个视频拼接在一起AVMutableComposition 我在某种程度上成功地做到了这一点 我的所有视频都拼 接在一起 并且所有内容都显
  • HTTP 请求损坏

    在接收大量流量的网站上 一小部分请求是这样的 http cheezburger com ScriptResource axd d zaVpgH63ePt90pn br br p a src ScriptResource axd d zaVp
  • TFS 与 JIRA/Bamboo/SVN [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 us-central1 以外的网络区域使用 httpsCallable

    我部署了一个云函数 如下所示 export const publishVersion functions region europe west2 https onCall async data context gt 然后在我的网络客户端中
  • Golang - ToUpper() 在单个字节上?

    我有一个 byte b 我想选择一个字节 b pos 并将其更改为大写 然后小写 bytestype 有一个方法叫做ToUpper 我如何将其用于单个字节 Calling ToUpper在单字节上 OneOfOne 给出了最有效的 调用数千
  • 柯里化有什么好处?

    我认为我不太理解柯里化 因为我看不到它可以提供任何巨大的好处 也许有人可以用一个例子来启发我 证明它为什么如此有用 它真的有好处和应用吗 还是只是一个被过度重视的概念 两者之间有细微差别currying and 部分应用 尽管它们密切相关
  • BigQuery 分区表在 _PARTITIONTIME 上联接

    有两个分区表 都带有伪列 PARTITIONTIME 我想在 PARTITIONTIME 上加入它们 然后我想使用 PARTITIONTIME 过滤器查询结果表 但我注意到该过滤器仅传播到 JOIN 语句的第一个表 下面是一个例子 WITH
  • 如何在 Sublime Text 2 中解析来自 TypeScript 的错误消息?

    我正在尝试为 TypeScript 设置 Sublime Text 2 构建系统 我已按照我找到的指示进行操作here https stackoverflow com questions 12779631 how to configure
  • 问题 如何使 C# 的 VS IDE 设计器失效/刷新?

    I have 定制表格继承自Form它实现了一个名为的布尔属性Prop 我将使用的表单将继承自定制表格 此属性将对表单进行一些绘制和更改 如果已启用 但是 这并没有按预期工作 设计的 VS IDE 没有刷新以显示更改 但是 如果我按 Ctr
  • 使用 boost::asio::ip::tcp::iostream 的低带宽性能

    我写了一个小测试程序 使用boost asio ip tcp iostream传输约 38 MiB 的数据 include
  • C++ 标准是否强制要求对 wchar_t 进行编码?

    以下是我的 2014 年标准草案 N4140 副本的一些摘录 22 5 标准代码转换方面 locale stdcvt 3 对于三个代码转换方面中的每一个codecvt utf8 codecvt utf16 and codecvt utf8
  • NestedScrollView 下方的 TextView 高度为 wrap_content 不可见

    下面是底页的布局文件 我有一个TextView在嵌套滚动视图下方 当内容较大时 TextView以下NestedScrollView不可见 如果 NestedScrollView 的内容很小 它是可见的 我不明白是什么原因造成的 这是我的布
  • 套接字编程中的客户端到客户端消息传递

    我正在开发一个项目 该项目是基于 C 中的 WinSock 的服务器客户端应用程序 我已经完成了服务器和客户端之间通信所需的任何操作 我能够在它们之间发送和接收消息 现在我需要知道如何完成客户端到客户端消息传递部分以及必须如何完成工作 我只