C#P2P聊天应用程序设计

我想创建一个不使用显式服务器的简单聊天应用程序。 主要要求是用户可以同时与许多朋友聊天(就像在Skype等上一样)。 我不是说这里的会议聊天,只是多个单独的聊天窗口。

目前,我只想要一个局域网消息传递应用程序,但我很欣赏,如果设计很容易扩展到Internet连接。

我想知道什么样的设计适合这种应用。

  • 您如何看待解决方案,其中每个用户应用程序都有一个TcpListener (隐式服务器)和多个TcpClient对象 – 一个用于他/她正在TcpListener交谈的每个朋友。
  • 如何validation远程用户? 聊天应用程序是否应该生成证书(X509或某事物)或者只是假设局域网中的用户是可信任的:)

最亲切的问候,

HttpListener + WebClient(or HttpWebRequest)可以为您提供更多的身份validation/安全工具。 基本身份validation,Ntlm,集成Windows身份validation,https等,它们更适合防火墙。

你应该看到开始

我如何制作自己的P2P软件?

WCF / WPF聊天应用程序

P2P通信 – 代理监听器和代理客户端

希望这certificate是一个很好的起点

快乐的编码