向正在等待 TCP 的线程发送指令?

2023-12-25

我试图理解 TCP 中的多线程,所以我正在编写一个基本的 telnet 文本“路由器”。

using ReadLine()每个使用 TCP 侦听器的线程将等待来自 telnet 客户端的输入,然后根据发送的文本进行响应。我将其与多个线程和多个 telnet 客户端一起使用。

我想有条件地向所有线程发送消息。 例如,如果从任一线程发送的文本是“警报!”然后我希望连接的客户端的每个线程都执行WriteLine("Alert!")

这有道理吗? 我的问题是我不知道如何使一个线程在另一个线程中引发事件。


您需要查看事件代理模式。基本上,您将拥有一个对象,其中包含所有线程都订阅的事件。它还将有一个可以调用的方法来调用事件。这听起来可能很复杂,但其实相当简单。

示例代码在这里http://msforge.net/blogs/paki/archive/2007/11/20/EventBroker-implementation-in-C_2300_-full-source-code.aspx http://msforge.net/blogs/paki/archive/2007/11/20/EventBroker-implementation-in-C_2300_-full-source-code.aspx.

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

向正在等待 TCP 的线程发送指令? 的相关文章

  • 如何在 VC++ CString 中验证有效的整数和浮点数

    有人可以告诉我一种有效的方法来验证 CString 对象中存在的数字是有效整数还是浮点数吗 Use tcstol http msdn microsoft com en us library w4z2wdyc aspx and tcstod
  • C# 方法重载决策不选择具体的泛型覆盖

    这个完整的 C 程序说明了这个问题 public abstract class Executor
  • 将类对象放置在向量中?

    我注意到我可以将一个类放置在一个向量中 这是我的程序 我收到以下错误 out blackjack exe blackjack obj blackjack obj error LNK2019 unresolved external symbo
  • Environment.CurrentDirectory 与 System.IO.Directory.GetCurrentDirectory

    我正在编写一个 Net WinForms 并不断在调试和发布配置之间切换 并且有一些文件我需要任一配置才能访问 我想做的是将文件放在 BIN 文件夹中的公共目录中 这样它看起来像这样 MyProject Bin CommonFiles My
  • 未找到 Boost 库,但编译正常

    我正在尝试在 C 中使用 boost 的文件系统 使用时看起来编译没问题 c c Analyse c o Analyse o g W Wall L usr local lib lboost filesystem lboost system
  • 有些有助于理解“产量”

    在我不断追求少吸的过程中 我试图理解 产量 的说法 但我不断遇到同样的错误 someMethod 的主体不能是迭代器块 因为 System Collections Generic List 不是迭代器接口类型 这是我被卡住的代码 forea
  • cpp.react库的C++源代码中奇怪的“->* []”表达式

    这是我在文档中找到的 C 片段cpp react 库 https github com schlangster cpp react implicit parallelism auto in D MakeVar 0 auto op1 in g
  • RestSharp获取序列化输出

    我正在寻找一种方法来访问 AddBody 调用的序列化结果 我正在使用内置的 RestSharp 序列化器 例子 class Foo public string FooField void SendRecord var f new Foo
  • C++中判断unicode字符是全角还是半角

    我正在编写一个终端 控制台 应用程序 该应用程序应该包装任意 unicode 文本 终端通常使用等宽 固定宽度 字体 因此要换行文本 只需计算字符数并观察单词是否适合一行并采取相应的操作 问题是 Unicode 表中的全角字符在终端中占用了
  • 已发布的 .Net Core 应用程序警告安装 .Net Core,但它已安装

    我制作了一个 WPF 和控制台应用程序 供某人在我无法访问的私人服务器上使用 我使用 Visual Studio 2019 的内置 发布向导 来创建依赖于框架的单文件应用程序 当该人打开 WPF 应用程序时 他们会看到标准警告 他们单击 是
  • 在 C# 中为父窗体中的子窗体控件添加事件处理程序

    我有两种形式 一种是带有按钮和文本框的父表单 单击该按钮时 将打开一个对话框 该子窗体又包含一个文本框和一个按钮 现在我想要的是 每当子表单文本框中的文本更改时 父表单文本框中的文本会自动更改 为了获得这个 我所做的是 Form3 f3 n
  • 将 Word 转换为 PDF - 禁用“保存”对话框

    我有一个用 C 编写的 Word 到 PDF 转换器 除了一件事之外 它工作得很好 有时 在某些 Word 文件上 后台会出现一条消息保存源文件中的更改 gt 是 否 取消 但我没有对源文件进行任何更改 我只想从 Word 文件创建 PDF
  • 将函数参数类型提取为参数包

    这是一个后续问题 解包 元组以调用匹配的函数指针 https stackoverflow com questions 7858817 unpacking a tuple to call a matching function pointer
  • 比较:接口方法、虚方法、抽象方法

    它们各自的优点和缺点是什么 接口方法 虚拟方法 抽象方法 什么时候应该选择什么 做出这一决定时应牢记哪些要点 虚拟和抽象几乎是一样的 虚方法在基类中有一个实现 可以选择重写 而抽象方法则没有 并且must在子类中被覆盖 否则它们是相同的 在
  • C++ 对象用 new 创建,用 free() 销毁;这有多糟糕?

    我正在修改一个相对较大的 C 程序 不幸的是 并不总是清楚我之前的人使用的是 C 还是 C 语法 这是在一所大学的电气工程系 我们 EE 总是想用 C 来做所有事情 不幸的是 在这种情况下 人们实际上可以逃脱惩罚 但是 如果有人创建一个对象
  • 将 Lambda 表达式树与 IEnumerable 结合使用

    我一直在尝试了解有关使用 Lamba 表达式树的更多信息 因此我创建了一个简单的示例 这是代码 如果作为 C 程序粘贴到 LINQPad 中 它可以工作 void Main IEnumerable
  • WPF DataGrid / ListView 绑定到数组 mvvm

    我们假设你有 N 个整数的数组 表示行数的整数值 在模型中 该整数绑定到视图中的 ComboBox Q1 如何将数组 或数组的各个项目 绑定到 DataGrid 或 ListView 控件 以便 当您更改 ComboBox 值时 只有那么多
  • 如何在 sql azure 上运行 aspnet_regsql? [复制]

    这个问题在这里已经有答案了 可能的重复 将 ASP NET 成员资格数据库迁移到 SQL Azure https stackoverflow com questions 10140774 migrating asp net membersh
  • MySqlConnectionStringBuilder - 使用证书连接

    我正在尝试连接到 Google Cloud Sql 这是一个 MySql 解决方案 我能够使用 MySql Workbench 进行连接 我如何使用 C 连接MySqlConnectionStringBuilder 我找不到提供这三个证书的
  • 如何在 C 中将 char 连接到 char* ?

    我怎样才能前置char c to char myChar 我有c值为 A and myChar值为 LL 我怎样才能前置c to myChar使 ALL 这应该有效 include

随机推荐

  • 如何重新索引 pandas 数据透视表

    我创建了一个数据透视表 该表根据其中一列和时间索引的月份进行分组 这是数据透视表 AWRT AWFT AWDT Time type April All 38 190119 65 789103 27 598984 DHW 19 676627
  • 隐式、显式和流利等待之间的区别

    两者之间的确切区别是什么implicitwait explicitwait and fluentwait 您能举例说明吗 我已经发布关于此的博客文章 https medium com austenjt difference betwen i
  • 为什么 (x += x += 1) 在 C 和 Javascript 中的计算结果不同?

    如果变量的值x最初为 0 表达式x x 1在 C 中将计算为 2 在 Javascript 中将计算为 1 C 的语义对我来说似乎很明显 x x 1被解释为x x 1 反过来 这相当于 x 1 x x where x is 1 at thi
  • 在 Angular 6 工作区中安装 NPM 包

    我刚刚开始学习 Angular 6 和 CLI 并创建了一个项目 如下所示 ng new my demo cd my demo ng g library foo prefix my 我的库中没有我想要添加的内容ngx bootstrap因为
  • Scrapy Spider整理抓取过程,不刮任何东西

    我有一只蜘蛛 它会在亚马逊上抓取信息 蜘蛛读取一个 txt 文件 在其中写入它必须搜索的产品 然后进入该产品的亚马逊页面 例如 我使用 keywords laptop 来更改要搜索的产品等 我遇到的问题是蜘蛛无法工作 这很奇怪 因为一周前它
  • 软件开发中的测试人员[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在我的公司 我们开发一种软 件产品 到目前为止 我们还没有任何测试人员 所以基本上开发人员就是测试人员 当然还有客户和用户 不好 我们的团队现在
  • lsnrctl start rane 当我触发此命令时出现此错误

    oracle myserver lsnrctl start rane LSNRCTL for Linux Version 11 2 0 1 0 Production on 27 SEP 2016 23 04 58 Copyright c 1
  • 错误:无法解析“C:\projects\Project-CMS\Project.Web\src”中的“./app/app.module.ngfactory”

    当我为 Angular 5 应用程序创建构建时 出现以下错误 当我创建构建时它工作正常 ng build 当我创建 buildproductttion 时它显示错误 ng build prod 我没有在应用程序中的任何地方使用 ngfact
  • 关闭模态视图控制器时“[CALayer release]:消息发送到已释放的实例”

    这几天我一直在纠结这个问题 找不到解决办法 所以请教一下 我有两个 UIViewController NewPostUIViewController 和 SettingsUIViewController 在第二个中我有一个字段 id
  • 如何访问数据网格模板列文本框文本 WPF C#

    我需要访问 a 中的文本DataGrid的模板列来自代码后面 但我不知道如何 我需要将文本更改为我在上传递给它的任何字符串SelectionChanged事件 有人可以告诉我如何实现这一目标吗 我发现了一个类似的问题here https s
  • 如果存在则更新,否则插入一个查询中[重复]

    这个问题在这里已经有答案了 我有这样的简单表 ID int KEY varchar VALUE int 1 asdf 100 2 fdsa 321 3 ecda 211 我想更新行KEY some
  • 从 SPSS 中的所有变量名称中去除后缀

    我有一个数据集 其中每个变量名称都有后缀 1 这样做是为了指示第一次采访时间点 我想从所有变量中删除这个后缀 但变量有数百个 所以我正在寻找一种方法来完成此操作 而无需数百次使用 RENAME 语句 我找到的最接近相关信息来自下面的链接 用
  • MinGW 中的静态链接库

    假设我有三个 C 源文件 前两个是 LIB lib a 第三个是使用它们的应用程序 第一个是 re c int re int i return i 第二个是 test c int re int Depends on re c int tes
  • 使用相同端口(80)运行多个 java jetty 实例

    例如 我有一个主要临时域 www product com 对于每个客户端 我需要将单独的子域映射到具有相同端口 80 但具有不同实例名称 不同 wars文件 的同一服务器 www client1 product com www client
  • 混淆的效果如何?

    另一个问题 即最佳 NET 混淆工具 策略 https stackoverflow com questions 2525 best net obfuscation tools strategy 询问混淆是否容易使用工具实现 但我的问题是 混
  • mybatis动态sql里面注解

    我使用的是mybatis 3 我正在使用 select 注释在映射器接口内编写选择查询 Example Select select from EMPLOYEE where ID gt 55 public List
  • 为什么使用 zone() 时 momentjs isDST() 返回错误的时间

    我正在尝试检查 isDST 如果夏令时处于活动状态 则返回 true 或 false 如果我使用当前日期时间 它工作正常 例如 var isdst moment isDST 对于我的时区返回 true 但是 我想要做的是首先设置时区偏移量
  • 如何对元组列表进行分组?

    Note 我当然知道如何在显式 for 循环中做到这一点 但我正在寻找一个更具可读性的解决方案 如果可能的话 我想通过使用一些内置功能来解决这个问题 最好的情况是这样的 result groupby logic 假设有以下列表 import
  • 您是否应该更喜欢重载而不是函数模板的专门化?

    我的一本教科书指出 您可以为标准库函数提供自己的实现 例如swap x y 通过模板专门化或函数重载 这对于任何可以从赋值交换以外的东西中受益的类型都很有用 例如 STL 容器 我知道 它已经编写了交换 我的问题如下 更好的是 模板专业化为
  • 向正在等待 TCP 的线程发送指令?

    我试图理解 TCP 中的多线程 所以我正在编写一个基本的 telnet 文本 路由器 using ReadLine 每个使用 TCP 侦听器的线程将等待来自 telnet 客户端的输入 然后根据发送的文本进行响应 我将其与多个线程和多个 t