C# 中的多客户端/服务器聊天程序?

2023-12-27

客户将能够一对一和群组聊天(温和的房间) 类似于 Skype。

我将使用服务器来授权客户端

我的问题是哪个更好?

(WCF) 或(TCPClient、StreamReader 和 StreamWriter)

cheesr


我还没有使用过 WCF,但我可以证明 TCPClient 是一个流行的良好开端,它工作得非常好,并且您会在网络上找到许多现成的示例。 此外,如果您刚开始接触网络,这是了解该技术的好方法,因为您将确切地知道自己在做什么,并且它将帮助您了解客户端/服务器技术的基础知识。

另一方面,WCF 似乎更加简化和直接,但很难看到幕后发生的事情。

我建议你try both用简单的代码片段和你自己看,这就是我每次有技术替代方案可供选择时所做的,恕我直言,这是做出自己的相关决定的最佳方式。

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

C# 中的多客户端/服务器聊天程序? 的相关文章

随机推荐

  • 逐字字符串文字 v 转义序列

    C 编译器或 NET 运行时处理逐字字符串文本与使用转义序列 即性能 的方式有什么区别 还是只是设计时风格的问题 例如 var pathA c somewhere var pathB c somewhere 我想它们的编译方式是相同的 这并
  • 什么是未定义的引用/未解析的外部符号错误以及如何在 Fortran 中修复它?

    我正在尝试构建 Fortran 程序 但收到有关未定义引用或未解析的外部符号的错误 我见过另一个问题 https stackoverflow com q 12573816关于这些错误 但答案大多是针对 C 的 使用 Fortran 编写时出
  • 由于“只读文件系统”,Google Kubernetes Engine (GKE) 集群“创建挂载源路径时出错”

    我有一个具有以下配置的容器 spec template spec restartPolicy OnFailure volumes name local src hostPath path src analysis src type Dire
  • 如何强制协调员行动以特定频率实现?

    我想知道是否有可能 如何强制协调员定期具体化或实例化工作流程 即使先前实例化的工作流程尚未完成 让我解释 我有一个简单的协调员 如下所示
  • 如何在C#中实现单例?

    如何在 C 中实现单例模式 我想将常量和一些基本函数放入其中 因为我在项目中到处都使用它们 我想让它们 全局 而不需要手动绑定它们我创建的每个对象 如果您只是存储一些全局值并且有一些不需要状态的方法 则不需要单例 只需将类及其属性 方法设为
  • 符号可见性、异常、运行时错误

    我尝试更好地理解符号可见性 海湾合作委员会维基百科 http gcc gnu org wiki Visibility http gcc gnu org wiki Visibility 有一个关于 C 异常问题 的部分 根据 GCC Wiki
  • 创建一个 N 维数组,其中 N 在运行时确定 (C++)

    我正在将 N 维图像立方体编码为不同的图像格式 我直到运行时才知道图像的尺寸 并且我用来读取原始图像的库需要一个 N 维数组目标缓冲区作为参数 如何在 C 中声明这样的数组 谢谢 简而言之 您不能在 C 中声明这样的数组 数组的维数是类型的
  • IDisposable 实现 - “if(处置)”中应该包含什么内容

    我一直在修复 winforms 应用程序中的一些内存泄漏问题 并注意到一些未明确处理的一次性对象 开发人员尚未调用 Dispose 方法 Finalize 方法的实现也没有帮助 因为它没有进入if disposing 条款 所有的静态事件注
  • 每当 gem 不更新 crontab 任务时

    我一直在 Slicehost 上我 2 岁以上的切片上使用每当宝石 然而我不能在我的新切片上做同样的事情 主要区别在于我现在在 MBP 和切片上运行 RVM 我还运行 Rails 3 我有 Rubygems v 1 5 0 和最新版本的 R
  • 如何检测 iPhone 中的震动方向

    我有一个瓶子的图像 每当用户摇动设备时 我想将该图像朝那个方向移动 例如上 下 左或右 例如 如果用户向左摇动设备 我想向左移动该图像 我可以使用检测震动事件 void motionEnded UIEventSubtype motion w
  • 绘制矩形多维数组

    我目前正在开发库存系统 但是我在弄清楚应该如何绘制它时遇到问题 我有一个矩形数组 如下所示 Rectangle Inventoryslots new Rectangle 24 24 slots 现在我想将插槽绘制为6 4列 宽度为6个插槽
  • 一种更好的算法来查找数字字符串的下一个回文

    首先这里有一个问题 如果从左到右和从右到左读取的正整数在十进制系统中的表示相同 则该正整数称为回文 对于给定的不超过1000000位的正整数K 将大于K的最小回文数的值写入输出 显示的数字始终不带前导零 输入 第一行包含整数 t 即测试用例
  • CSS滑动边框

    感谢 codeSpy 我得到了这个 http jsfiddle net p9tBR http jsfiddle net p9tBR 我不知道如何在更改页面时更改蓝线 例如 如果我在第 2 页 我希望蓝线位于 2 而不是 1 的下方 当我在第
  • 同一目录中的两个不同的 Git 存储库

    我想维护两个不同的 git 存储库 存储库应保留在同一根目录中 如何实现 我想要的是 管理两个略有不同的存储库 我可以在同一目录中有两个完全不同的存储库吗 您可以通过在 git 命令本身上添加使用以下两个选项之一来实现此目的 git wor
  • 如何给UITextView实现搜索功能?

    我有40多个观点 各有各的观点UITexView 我想实现一个搜索功能 允许用户跨域搜索UITextViews 实际上 我什至不知道如何实现 1 的搜索功能UITextView 因此我不知道这是否可能 我已经在网上搜索并在这里寻找它 但没有
  • 锯齿状数组类型属性

    假设我有这样的财产 public int MyProperty get set 调用代码可以自由更改数组的值 而且还可以替换数组本身 通过隐藏设置器可以轻松防止这种情况 如下所示 public int MyProperty get priv
  • 用c++例子解释Facade模式?

    我已经与维基百科文章 http en wikipedia org wiki Facade pattern 并且似乎缺少代码示例的 C 版本 如果没有这个我就无法完全理解 Facade 模式 你能用 C 帮我解释一下吗 外观模式 为复杂的子系
  • 如何将标签添加到 Bootstrap 对话框页脚

    需要添加bootstrap页脚上的标签bootstrap3 dialog 根据本教程 http nakupanda github io bootstrap3 dialog 只能在页脚区域添加按钮 BootstrapDialog show t
  • NPM:找不到模块“uuid”

    当我尝试使用 npm 时 我收到此消息 gt npm module js 472 throw err Error Cannot found module uuid at Function Module resolveFilename mod
  • C# 中的多客户端/服务器聊天程序?

    客户将能够一对一和群组聊天 温和的房间 类似于 Skype 我将使用服务器来授权客户端 我的问题是哪个更好 WCF 或 TCPClient StreamReader 和 StreamWriter cheesr 我还没有使用过 WCF 但我可