【问题标题】:Need concept regarding windows based chat application需要有关基于 Windows 的聊天应用程序的概念
【发布时间】:2023-03-10 15:05:02
【问题描述】:

假设如果我想开发一个 Windows 聊天应用程序,那么还需要开发一个聊天服务器和客户端。开发聊天服务器应用程序后,我们可以在一台机器上运行该应用程序,而聊天客户端将运行另一台电脑。如果这些电脑不在同一个网络中,假设聊天服务器在美国机器上运行,一个聊天客户端在德国机器上运行,另一个在英国机器上运行。在这种情况下,如何使用互联网进行通信。所有机器都可以访问互联网,因此一个聊天客户端将如何登录聊天服务器以及两个聊天客户端将如何相互通信。我只想了解数据如何通过聊天服务器从一个客户端传输到另一个客户端。请给我一个概念,或者如果有人给我一个基于.net的聊天应用程序的参考会更好,其中聊天服务器和聊天客户端将在那里......谢谢。

【问题讨论】:

  • 这里没有真正的具体问题...您了解什么是客户端/服务器架构吗?您想知道如何通过互联网进行一般通信吗?
  • 是的,我想知道两个 win 应用程序如何通过互联网相互通信....请详细解释。谢谢
  • 接受率这么低可能很难得到答案

标签: c# concept


【解决方案1】:

一般?我看不出这与 C# 有什么关系,但客户端-服务器架构如下所示:

Client <-----> Server

对于您描述的两个或多个客户端相互通信的情况,您只是在谈论添加多个客户端:

Client A <----
              |
               ----> Server
              |
Client B <----

如果客户端 A 想要向客户端 B 发送消息,则客户端 A 会将消息发送到服务器,其中包含某种信息,表明它是针对客户端 B 的。然后服务器检查该消息,确定它是针对客户端的B,然后将该消息通过其连接中继到客户端 B。

这是客户端-服务器架构的基本定义。还有更高级的架构将客户端-服务器与点对点混合在一起,例如 Skype。在混合系统中,从客户端到服务器的连接通常只携带控制消息(身份验证等)和有关如何直接联系另一个客户端的信息的请求。这种方法的优点是它不需要 A 和 B 之间的所有通信都流经服务器; A 和 B 都连接到服务器,但他们随后询问服务器如何直接相互连接,然后使用该直接连接进行带宽密集型通信。

不过,这都是旁白。在开始开发应用程序之前,您应该阅读独立于任何特定语言或环境的客户端-服务器架构

【讨论】:

  • 感谢您的回复.....我只是想知道如何在 c# 中编写代码,因为在两台不同机器上运行的两个应用程序可以通过互联网相互交互。如果你能指导我这件事,我会很高兴..非常感谢你的时间..;)
【解决方案2】:
  1. 客户端轮询服务的 WCF Web 服务(简单的基本场景 - 易于实现,效率不高)

  2. WCF 双工 Web 服务,服务器在需要时更新客户端(有点复杂)

  3. 基于 TCP 套接字的解决方案,最难实现但允许更好的控制。 Matthew McDonald 的书《Pro Silverlight 3》中有一个很好的例子

【讨论】:

  • 我只想在通过 Internet 相互通信的 win 应用程序中使用套接字,因为像一个聊天服务器这样的两个应用程序将在英国机器上运行,而其他聊天客户端将在美国机器上运行。所以套接字应用程序如何通过互联网与其他应用程序交互。如果可能,请详细解释....或者你可以给我一个网址,我可以从中获得知识....谢谢。
  • 基本上你应该有一个“监听”传入连接的服务器,一旦传入连接被接受,就可以创建服务器端连接客户端并用于直接与特定的远程客户端通信。我确实建议您查看我提到的这本书,它有一个完整的工作示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-14
  • 1970-01-01
  • 1970-01-01
  • 2018-09-13
相关资源
最近更新 更多