【问题标题】:What's the best way to build a C# .NET client-server chat application? [duplicate]构建 C# .NET 客户端-服务器聊天应用程序的最佳方式是什么? [复制]
【发布时间】:2011-11-28 01:15:11
【问题描述】:

可能重复:
multi client/server chat program in c#?

一段时间以来,我一直在尝试构建一个简单的客户端-服务器聊天,但我不断发现有很多不同的方式。

我只是好奇最正确的方法是什么。

首先涉及创建一个新套接字,将其绑定到特定端口和任何 IP 地址,然后侦听新连接(这就是教程所引导的)。接下来涉及使用 TcpListener 侦听特定端口(尽管它发出警告说它已被弃用,并且我必须包含一个 IP 地址),然后它等待新的 TCP 连接,然后创建一个新的哈希表或新列表存储 TcpClient(s)。这就是服务器端。客户端几乎相同,总是尝试连接到服务器。

那么,构建一个的最佳方法是什么?另外,我应该使用 StreamReader 和 StreamWriter(一些 tuts 使用),还是应该使用 NetworkStream,我应该使用什么来传输消息?

【问题讨论】:

  • 您能解释一下 WCF 是什么吗?
  • WCF 是“Windows 通信基础”。它是一个涵盖程序之间通信的框架。它可以配置为使用各种协议和通信对象,在应用程序级别您不必担心细节。您可以通过套接字有效地发送对象,而无需编写代码来序列化/反序列化内容。
  • 关于 WCF 的更多信息:通常在 WCF 中,客户端轮询服务器比服务器发送内容更容易。客户端只需进行函数调用,并从服务器获取结果。结果可以是一个对象、一个对象列表,或者任何你可以编写一个函数来返回的东西。底线:WCF 中的调用看起来像任何其他函数调用,但处理可以在某个远程服务器上完成。
  • 或者XMPP/Jabber,这是一个真正的聊天协议。去谷歌上查询。 jabber-net 是一个相当不错的客户端库。
  • Jabber 看起来几年没更新了。 WCF 可能有点难以理解,但它更通用。 WCF 技能也可以帮助您保持就业。

标签: c# .net sockets client-server chat


【解决方案1】:

你在正确的轨道上。但是,您可能想了解 WCF 的一些更高级的功能,例如允许基于事件从服务器推送的双工服务。

【讨论】:

    【解决方案2】:

    就我个人而言,我会设置一个 XMPP 服务器并与 Jabber.net (http://code.google.com/p/jabber-net/) 或其他东西交谈,但我已经有几年没看过了.

    【讨论】:

      猜你喜欢
      • 2021-09-24
      • 1970-01-01
      • 1970-01-01
      • 2017-03-10
      • 1970-01-01
      • 2011-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多