广州明生堂生物科技有限公司


Python打造高效im应用,原理解析! (im服务器框架 python)

网络编程 Python打造高效im应用,原理解析! (im服务器框架 python) 10-12

Python打造高效IM应用,原理解析!

Python作为一种脚本语言,在创建信息即时通讯(IM)应用方面一直备受青睐。Python独特的语法和易于学习的环境,使其成为很多开发人员和初学者的首选语言。本文将探讨如何使用Python语言打造高效的IM应用。

IM应用概述

IM(即时通讯)应用程序,可以让用户在网络上相互交流信息。这种应用程序大致分为两类:1)基于客户端的IM应用程序,如QQ,微信等;2)基于浏览器的IM应用程序,如WhatsApp,Facebook Messenger等。

IM应用程序的几个核心特点如下:

实时性:IM应用程序让用户在网络上即时发送和接收消息,因此,需要具有快速响应和低延迟。

可靠性:作为一种电子交流方式,IM应用程序需要具备很好的信息传输保障,防止丢失消息和数据传输中断。

隐私性:IM应用程序让用户在网络上交流敏感信息,因此需要提供安全的加密通道,以保证用户信息的保密性。

Python在IM应用程序开发中的使用

Python可以用来开发多种不同的应用程序,包括IM应用程序。Python提供了许多库,可用于处理文本、图形、网络、数据存储等,使得Python成为处理IM应用程序所需的绝佳编程语言。

Python套接字编程

Python套接字编程是用于开发网络应用程序的核心技术。套接字是两个应用程序之间的传输协议,充当了应用程序和网络之间的一个接口。 如开发IM应用程序,可以使用Python套接字来处理客户端和服务器之间的通讯协议。

基于Twisted框架的IM应用程序开发

Twisted是Python网络编程的更流行框架之一。Twisted提供了强大的网络套接字编程支持,可用于构建高效、可靠、灵活的网络应用程序。Twisted不仅支持常见的TCP和UDP协议,还支持SSL/TLS和SSH等安全协议,因此,也可用于实现IM应用程序中数据加密和传输保障。

Python WebSocket编程

WebSocket是一种用于在客户端和服务器之间传递数据的协议,类似于HTTP。WebSocket可以建立持久的连接,允许浏览器或客户端与服务器交换数据,类似于IM应用程序中的消息和通讯。 Python可以使用Tornado和Django等Web框架来支持WebSocket的开发,这些框架提供了强大的服务器端和客户端实现支持,并包含许多自定义的API和库。

Python多线程编程

Python支持多线程编程,因此可以用于同时处理多个客户端数据请求。Python的线程库提供了全局锁、信号量和活锁等常用机制,帮助实现线程之间的同步操作,以确保高效和安全的多线程应用程序的开发。

Python并发编程

Python并发编程是一种可同时执行多个任务的技术,可以用于构建高效的IM应用程序。Python的并发编程可以使用协程,也称为轻量级线程,允许程序在单个线程中同时执行多个任务。这种轻量级的线程模型提高了程序的性能和效率。

Python在IM应用程序开发中可以通过多种不同的技术和库来实现高效、可靠和安全的通讯系统。 Python支持多线程和并发编程技术,使得开发人员可以使用更少的资源来处理更多的网络功能和任务。Python提供了许多框架和库,可以用于处理网络、加密、安全和消息传递等复杂的功能。因此,Python是一种高效的开发工具,可以让开发人员轻松创建高效的IM应用程序。

相关问题拓展阅读:

  • 如何用java开发基于jabber的IM软件
  • C#服务端,Android客户端 开发IM,服务端怎么弄,有没有开源的框架

如何用java开发基于jabber的IM软件

jabber.org 到官方站去 看看吧 资料不少 有很多开唤早源实现 Spark那个提供扩展api,还有配套和含雀的服务端实现老歼openfire

Jabber对于即时消息是一个开放的、基于XML的数据模型和协议。联系不断增加的基于Jabber开放资源和商业产品的数目,这种协议提供了摆脱即时消息服务器所有权束缚的一种方法。多种多样的开放资源Java APIs能够帮助你建立基于Jabber的服务器并将即时消息整合到你的应用程序中去。在这篇文章中专门阐述了这一点。

即时消息作为个人——个人通迅工具取得了显著的成功。在有些地方它已经作为在线联系的首选方法取代了email。现在,开发者正将这一技术应用到应用程序——个人和应用程序——应用程序通迅上。

直到最近,也只有少数服务提供商掌握了这一技术。通常流行的即时消息服务是建立在所有权协议基础上的通迅孤岛。实施面临一个困难的决策:支持多协议或锁定到一个单独的。不管哪种选择,实现都必须依赖一个属于即时消息(IM)服务提供商的服务器。

开放式协议能够帮助开发者摆脱所有权陷阱。其优势有多种:开放协议鼓励竞争实现的发展(一些开放资源)。他们鼓励广泛采用一种公乱让共协议,这样可以阻止通迅孤岛和服务供应的孤立主义方法的发展。用多种方法,开放协议使因特网成为可能。在即时消息领域,开放协议确保封闭系统及协议不会阻碍基于IM服务器的发展的互操作性。

Jabber是一种针对即时消息和现场服务的开放协议。作为一个公共协议的最主要的侯选者,Jabber有潜力打破所有权在即时消息服务的控制。

这篇文章将解释如何实践发送简单Jabber消息和开发一个简单的基于开放标准及开放资源APIs和产品的布告服务器。

为什么使用Jabber?

Jabber标准和结构帮助创建一个分布式的IM系统,使人联想到分布在因特网上的email系统,用户在本地连接到这些系统。这个方法直接与象AIM(AOL即时信使)、ICQ、MSN(Microsoft网络)及Yahoo这样的流行服务提供商提供的单一系统结构作对,在那里一个单独的中央服务器或集中服务器组提供消息服务。岩羡Jabber在其他情形也类似于email结构:Jabber使用一个几乎与基本TP(简单邮件传输协议)方案一样的地址方案确定它的终点(人,机器,软件)地址。例如,,或使用Jabber说法叫JID(Jabber ID)。因为这些原因,基于Jabber的系统衡量起来好于已存在的专有系统。加之,对于专有即时消息服务的网关允许的协议是必需的。

多种多样的Jabber服务器,包括我们在这篇文章中使用的其中之一,都是自由可使用的,意思就是说你不再需要依赖一个第三方IM服哗枣局务提供商(第三方Jabber服务对于那些要求第三方主机服务的来说也是有用的)。

标准化

当讨论Jabber标准的益处时,我应该提及IETF IM标准的工作。在写这篇文章时,其IMPPWG(即时消息和现场协议工作组)已有多个RFC有效,其中最重要的是:

·RFC 2778:现场和即时消息模型

·RFC 2779:即时消息/现场协议要求

IMPPWG已经起草了一个名叫CPIM(公共现场和即时消息)协议的因特网标准。Jabber协议也是一个草拟的因特网标准,但不是IMPPWG工作的部份。

Jabber在哪儿适合这一标准工作呢?依照Jabber网站,Jabber是“承诺完全支持任何开放实时消息协议,包括IETF协议”。如果当对于这个IETF协议的支持增长时,Jabber打算将自己定位为IETF协议的领导开放资源的平台。到目前为止,IETF的工作更多地主要集中在收集要求上而不是执行。暂时,Jabber仅是一个带有重要开放资源支持的开放即时消息和现场服务协议。结果,它成为开放即时消息事实上的标准。

另一个值得密切注意的竞争对手是Sun微系统的Jxta协议,另一个基于XML针对peer-to-peer(P2P)应用程序开发者的协议。各种各样的Jxta实施在今天已经能够被提供。但是,由于其起源相对较近,Jxta比起Jabber只有很少的牵引力。

下载并安装

要开始使用Jabber,你首先需要下载必要的工具:你需要一个Jabber服务器,一个Jabber客户端,一个帮助管理和隐藏一些复杂socket处理的API,XML语法分析,消息创建等等。

Jabber服务器

为了运行Jabber,你选择的Jabber服务器不能有问题,自从他们都接受了标准Jabber XML及与终端应用程序通迅以释放负荷,其也是标准Jabber XML。Jabberd,最初的Jabber服务器,是开放资源(但不是基于Java),安装配置简单并在多数平台上都有效,包括Unix、Linux、Windows和Mac OS X。JabaServer开放资源方案也值得提及,但现在,这些基于Java的方案仍不如Jabberd成熟。同时,JabaServer安装不怎么简单易懂,因为你必须下载、安装并配置一个第三方数据库,加上创建必需的数据库规划。

对于这篇文章的例子,我选择Jabberd。当二进制及源下载对于jabberd都有效时,我就不在这儿描述怎样建立一个源发布。除非你真想自己编译,可以从jabberd 主页下载二进制发布。在Windows平台上安装是相对容易的。发布是一个.exe程序,按照安装向导一步一步执行。

安装完成后,你无需配置。在Windows2023,不要求配置。只要双击二进制程序就可启动服务器。

用户代理/客户

我决定使用Exodus客户端,对于这个方案这是另一个开放资源技术。我尤其喜欢Exodus的调试标签,可以允许你正确地查看客户发送和接收的XML。另外你能够作为纯粹的XML键入Jabber消息并将它们发送给服务器。所有这些都证明用Jabber协议和服务器测试的有用性。

Exodus的安装简单易懂。下载Exodus 压缩文件(我在文章中使用的是0.6版本)。将文件直接解压到你想要安装客户端的目录。在这个版本中,文件是些简单的二进制文件和一个.dll文件。你可以从 Muse 主页下载Muse API。

发送你的之一个Jabber消息

要发送一个Jabber即时消息,你必须初始化Muse Jabber API。通过创建一个JabberContext 类的实例来完成,接下来使用内容作为一个参数到Jabber session factory类的createSession()方法:

1 //初始化Jabber context

2 JabberContext jabberContext = new JabberContext(“user”, “pass”, “localhost”);

4 //创建一个Jabber session factory的实例

5 Jabber jabber = new Jabber();

6 //创建新会话

7 JabberSession jabberSession = jabber.createSession(jabberContext);

上面的例子在第2行显示了一个新context的创建。JabberContext存储了指定的用户相关信息(用户名、密码、用户地址)以及稍后要使用context建立session时包含的一个唯一的会话标识。为了阐述意图,我直接使用了username、password和server。

在第5行,一个Jabber session factory被创建,我们在第7行使用它创建了一个新的JabberSession,Muse进入由Jabber服务器提供的服务的主要接口。服务器的主要服务是:

·连接服务: 从Jabber服务器连接和断开

·用户服务: 针对用户鉴定及注册

·现场服务: 接收从其它用户/服务来的及你自己广播的现场信息

·登记表服务: 密友列表或地址薄

·聊天服务: 发送多种类型的消息—组聊、私聊、标题等等

·服务器服务: 获得与由这个Jabber服务器提供的服务相关的信息

·客户服务: 获得关于其他用户的信息,比如用户登录的最后时间

现在我们已经有了一个已经初始化的Jabber session,我们能够用它在我们才创建的JabberSession对象中使用connect()方法去连接到Jabber 服务器:

8 //连接到服务器

9 jabberSession.connect(“localhost”, 5222);

要连接到一个Jabber服务器,我们指定地址及在指定服务器上的机器端口号。标准来说,缺省Jabber端口是5222。

现在JabberSession已经连接到服务器,我们能够在我们的服务中用login()方法登录:

10 //登录到Jabber服务器

11 jabberSession.getUserService().login();

在第11行,我们使用JabberSession获得一个到UserService的引用,接下来在我们服务中调用login()方法。注意方法自身不指定任何用户信息。当在上面第7行JabberSession被创建时login()从与JabberSession相关的JabberContext中获得这些信息。

现在我们已经成功登录到Jabber服务器,我们能够开始发送和接收消息。下面代码段显示了如何构造一个简单的标题风格的消息:

12 //构造测试消息

13 JabberChatMessage msg = new

14 JabberChatMessage(JabberChatMessage.TYPE_HEADLINE);

15 msg.setSubject(“Hello world”);

16 msg.setBody(“Hello world”);

17 msg.setTo(“user2@localhost”);

在第13行,我们创建了一个JabberChatMessage实例。单个参数指定了我们要求的消息类型:TYPE_HEADLINE。JabberChatMessage类的名字容易引起误解,实际上,它可以用来包含在Jabber协议中定义的消息的任何四种类型—普通、聊天、标题及错误。在第15行,setSubject()和setBody()分别指定主题和内容。最后,setTo()在第17行设置消息接收器的JID。

在封装下,JabberChatMessage将所有这些信息转换成一个内在的DOM(文档对象模型)树,这样当我们已经准备好发送消息给Jabber服务器时能够轻松产生XML。

最后步骤:用sendMessage()方法发送消息:

18 //发送消息

19 jabberSession.sendMessage(msg);

在封装下

依据上面例子所得的事实,Muse API有效地隐藏了与连接管理和XML语法分析有关的所有细节,因此允许你集中精力在手边的任务上:创建一个消息服务。然而,理解一些基础协议交换证明是有用的。让我们关注一下当我们连接到服务器时发生的XML交换,登录,并象上面代码描述的一样发送消息。在下面的XML交换中,被客户接收的消息(我们例子代码)带了RECV前缀,送到服务器的消息带有SEND前缀:

SEND:

RECV:

所有的Jabber交换都发生在一个XML流的上下文。在我们客户与Jabber服务器之间连接的生命期间,两个完全的XML文档在一个时间传输一个片段。上面显示的最初交换允许客户开始发送XML流文档到服务器并且服务器开始发送XML流文档到客户。

下面,一个要求鉴定的信息被发送给服务器:

SEND:

user

RECV:

user

482

3D15E63A

在用户鉴定程序前述那段显示了之一次交换。开始,客户向服务器询问哪种鉴定方式对于给定用户是有效的。服务器段用下面的鉴定方法回答:

·Plain 文本:标签

·零知识鉴定:使用和标签

·:象plain文本,但密码是SHA-1 (安全无序运算法则)-用用户的plain文本密码进行编码

我们实际上使用,象下面代码段描述的一样:

SEND:

user

425cedcc5f23ba239c6cc69556f5c

Home

RECV:

在这一点,用户连接到服务器并能够开始发送和接收消息:

SEND:

id_10033

Hello world

Hello world

上面片段显示了我们发送给接收者user2@localhost的测试标题消息。

你可能已经注意到在前述协议段有一个重复出现元素:ID标签。因为session能够由多个异步会话组成,ID标签匹配查询并响应。

接收消息

自从这篇文章的主要方向是向你显示如何开发一个报警系统,我就很少注意消息接收。然而,为了完整性的利益,我应该讨论在Muse API中处理接收消息的一些有用特性。另外,因为报警服务是被登录到Jabber服务器的用户执行的,你能够适当地期望一些消息接收者试图与发送者通信。

Muse使用一个listener附在session上以接收进入消息的提示。下面代码显示了如何创建一个listener并将其附到session——listener实际上附加到连接上,但自从我们的接口是在session级别并且JabberSession类有一个便利的方法添加一个listener,我们就将其附加到session:

1 jabberSession.addMessageListener(

2 new JabberMessageListener() {

3 public void messageReceived(JabberMessageEvent event) {

4 if (event.getMessageType() == JabberCode.MSG_CHAT ) {

5 JabberChatMessage msg =

6 (JabberChatMessage)event.getMessage();

7 JabberChatMessage reply = new

8 JabberChatMessage(JabberChatMessage.TYPE_HEADLINE);

9 reply.setTo(msg.getFrom());

10 reply.setSubject(“Re: “+msg.getSubject());

11 reply.setBody(

12 “I’m just a sender: please send messages to someone else”);

13

14 //发送消息

15 jabberSession.sendMessage(reply);

16 }

17 }

18 }

19 );

客户能够添加几个消息listeners,每次一个消息被接收它们都要被调用。典型的,你为要处理的每一个类型的消息添加一个listener。另一个选择:为同一种消息类型但在那些消息中的每一种不同的行为添加多个listeners。然而另一种选择将添加一个要处理所有消息类型的listener。选择依赖于你想完成什么。

在上面的例子中,一个单独的listener被附加。Listener必须是实现JabberMessageListener接口的类的一个实例。这个接口要求一个要被执行的单个方法: void messageReceived(JabberMessageEvent)。当一个消息从服务器被接收时这个方法将被调用。在例子代码中,messageReceived()方法首先检查在第4行接收的消息类型。自从Jabber用户代理使用了MSG_CHAT类型发送消息,就只对这种类型消息才感兴趣。在第5行,Jabber消息从JabberMessageEvent 提取。在第9行通过设置收件人接收消息被用来构成一个给消息发送者的回复并且在第10行拷贝接收消息的主题。一个缺省错误文本被作为消息体在第11行被设置,并且,在第15行,消息使用前面例子同样的方法利用JabberSession对象的sendMessage()方法传输。

试试Jabber

这篇文章提供了一个对于Jabber协议及少量你能够将这一技术应用到你的应用程序中去的开放资源方案的基本介绍。对这个协议有用的应用程序多种多样,并不限于传统P2P感觉的即时消息领域。例如,jogger.jabber.org提供的Jogger,一个允许你通过发送一个消息给Weblog应用程序(blog)就能更新个人网络杂志的有趣服务。Jabber在用户服务应用程序及其它结构的协作类型应用程序同样有很大的影响。

象上面例子所显示的一样,你使用一个API如Muse或JabberBeans在少许几行Java代码中就能够完成即时消息功能。记住我不能掩盖一些Jabber其它重要的特征,如现场服务和登记表管理,这些在使用时都是相关的。另一个重要的特征是Jabber服务器的模块性和可扩展性,它允许一个开发者创建新的服务直接整合进服务器。

jwchat

C#服务端,Android客户端 开发IM,服务端怎么弄,有没有开源的框架

C#开源项目(国外的还是很多) 一、Ajax框架 Ajax.NET Professional

(AjaxPro)是更先把AJAX技术在微软.NET环境下的实现的AJAX框架之一。它在客户端脚本之上创建代理类来调用服务器端的方法。

MagicAjax.NET是一款在ASP.NET下创建Web页面提供AJAX技术的框架。它使开发人员很容易把AJAX整合到他们的页面而不需要替换ASP.NET控件或自己写javascript脚本代码。

Anthem.NET是为ASP.NET开发环境提供的开源AJAX工具包,它可以运行于ASP.NET 1.1和2.0。

  二、工作流(workflow)

Workflow.Net是使用微软.Net技术基于wmfc标准的创建工作流引擎。

NetBPM是JBpm移植到.net平台下的一款开源工作流软件。NetBpm可以很容易和.Net应用程序集成在一起,可以创建,执行和管理工作流程序。 Bpm

Tool支持将业务模型转换成软件模型。业务开发人员可以使用模型驱动的方法设计,实现,执行和跟踪业务流程。因此开发人员能够更容易的关注业务逻辑的变化行冲。

  其实微软自己的WPF做WorkFlow也很厉害。

  三、文本编辑 FCKeditor是一款功能强大的开源在线文本编辑器(DHTML

editor),它使你在web上可以使用类似微软Word 的桌面文本编辑器的许多强大功能。它是轻量毁宴级且不必在客户端进行任何方式的安装。 FreeTextBox

是一个基于 Internet Explorer 中 MSHTML 技术的 ASP.NET 开源服务器控件。这是一款优秀的自由软件(Free

Software),我们可以轻松地将其嵌入到 Web Forms 中实现 HTML 内容的在线编辑,在新闻发布、博客写作、论坛社区等多种 Web

系统中都会有用途。 VietPad是一个功能完整的跨平台的Java/.NET的Vietnamese

Unicode开源文本编辑器。支持打开,编辑,打印,转换,排序,和保存基于文本的Unicode格式的Vietnamese文件。

NetSpell是一款.NET框架下的开源拼写检查引擎。 PPC_edit是一款应用在Pocket PC上的开源文本编辑器,它支持TXT, RTF, HTML,

WordML, DocBook 和 ZIP格式的文件,屏幕上会显示国际标准的软键盘。

  四、博客(Blog)

NovaShare是一款Blog引擎,它使你创建基于交互式的web的新闻和论坛网站,很像WonkoSlice或Slashdot。管理员可以发布文章和发起投票,浏览者可以创建用户帐号,发表议论等等。

dasBlog是从BlogX 网上日志引擎发展而来。像Trackback ,Pingback

一样增加许多附加的特征,有完整的Blogger/MovableType

API支持,API注释,完整的Radio-style模板定制,支持Mail-To-Weblog/POP3的附件和内嵌图片,基于WEB的

DHTML,OPML,配置的编辑器。 DotText是一个被使用了数百个blogs的强劲的blog引擎。这是一个N-tiered应用的例子。

tBlogger是一个C#开发的完整的blog网站程序,使用XML配置。

  Blog现在可以使用MVC的其他开源项目来构建,这些项目在codeplex上有很多,其中微软自己的就有OXite。

  五、系统构建

  .NETZ是一款免费开源工具,它可以压缩和打包微软 .NET 框架可执行文件(EXE,

DLL)以使他们更小。更小的可执行文件占用的磁盘空间较少且因为读取文件时对磁盘的访问较少而使读取数度更快。它和PE(portable

executable)打包工具不一样,.NETZ是使用 C# 编写的存粹的 .NET 解决方案。.NETZ可以用来打包几乎每一种 .NET

支持的语言编档余歼写的程序。.NETZ支持 .NET EXE 和 非共享(non-shared)的 DLL

文件。压缩过的程序能以相同的方式解压缩这些对最终用户是透明的。 NAntContrib为NAnt提供定制任务的工具。

Prebuild是XML驱动的一款跨平台pre-build工具,使开发人员很容易就可以为IDE和.NET开发工具生成项目或构建文件。它支持 Visual

Studio .NET 2023, 2023, 2023, SharpDevelop, MonoDevelop 和 NAnt。

BusyBeeBuilder是.NET平台下功能强大,易于使用,可扩展的开源构建自动操作工具。 Draco.NET 是 Windows

服务应用程序。它的设计使其容易持续的集成新特性。Draco.NET监视你的源代码储存库。当探测到你的项目有变化时自动重新创建项目并把包含变化列表的创建结果发送到你的Email。

Build Studio为软件的自动构件处理提供了一套完整的解决方案。 CruiseControl.NET是.NET平台下的一款整合服务器。

NAnt类似Apache项目下的Ant,是.Net下的开源构建工具。适用在自动编译.NET应用的场合,如.NET项目的每日构建(nightly

build)。

  说老实话,我并不认为系统构建工具的作用真的有那么强大,如果你真的计划做一个很大的项目,且持续开发时间很长,那么你可以使用上面的系统构建工具。

  五、图表制作

  ZedGraph是C#编写的.NET类库,提供了用户控件和web控件。它可以创建2D的线性图、条形图和饼图。它功能完整且有详细的功能自定义,不过

使用默认的选项就足够好用了。一款类似 PieChart, StackBar, LineChart的C#开源图表组件。

NPlot是一款.NET下的开源图表类库.它值得称道的地方是优雅且灵活的API设计.NPlot包含了Windows Form控件,

ASP.NET控件和一个创建Bitmap图片的类。还有一个可用的GTK#控件。 XSCharting是C#开发的图表组件,提供了多种多样的图表选项。

DaveChart是一个免费的DotNet类库。 NChart 提供了很多值得应用在商业,教育等多个领域的2 D图表。

  微软自己已经提供了一个chat绘制控件,也就是原来的dunat,如果那个可以满足你的要求,那么完全没有必要使用上面的。但是如果你需要研究画图,作自己定义的chat,那么这些开源的项目将对你有很大的帮助。

  六、聊天系统

  Dot Net Chat

server是基于DotNet框架开发的聊天服务器和客户端项目。说老实话,我对这个很感兴趣,有时间,要瞧瞧它的代码是咋实现的。

  七、内容管理系统(CMS)

  Ludico是C#编写的居于ASP.NET

2.0的Portal/CMS系统。它的模块化设计是你可以按照你希望的使用或开发网站功能。它里面有高级的用户管理,一个所见即所的(WYSIWYG)的编辑器等。

mojoPortal是一款C#开发的面相对象网站框架,它可以运行于Windows的ASP.NET 和GNU/Linux 或Mac OS X的Mono的平台上。

Cuyahoga是C#开发的灵活的CMS / Portal 解决方案。它可以运行于Microsoft .NET 和Mono 平台,支持SQL Server,

PostgreSQL或MySQL作为底层数据库。 Umbraco是一款在.net平台下C#开发的开源内容管理系统,该系统效率,灵活,用户界面都不错。 Kodai

CMS是.NET平台下的一款功能齐全的内容管理系统。 Rainbow项目是一款使用Microsoft’’s

ASP.NET和C#技术开发的有丰富功能的开源内容管理系统。 NkCMS是使用ASP.net和Sql server 2023开发的内容管理系统。

Amplefile是一款内容管理系统,是.Net环境下的windows应用程序,使用了.Net remoting.

Go.Kryo是一个用ASP.NET(C#).NET 实现的简单的内容管理系统,后台数据库使用Microsoft SQL Server 。 ndCMS是

ASP.net

(C#)下的一个内容管理系统。它提供了用户管理,文件管理,一个WYSIWYG编辑器,模板管理,拼写检查和内置的http压缩。ndCMS的目标是提供一个简单而快速的方式部署.Net站点以节省你的时间和金钱。

  这些开源的CMS我试用了几个,说真的,拿来研究可以,要真的实施,估计很难。

  九、论坛系统

  YetAnotherForum可以作为ASP.NET开发的网站的论坛或是留言板。它使用MSSQL作为底层数据库。

  十、安装制作

  izfree是一套套免费的工具用于帮助创建使用Microsoft”’’s Windows

Installer 技术的安装程序。使用izfree你可以为你的应用程序制作强劲的安装程序。

  Windows Installer XML

(WiX)可以重XML源文件创建Windows程序安装包的工具集。它支持命令行方式,开发人员可以把结合它来创建MSI和M安装包一个可以和商业软件安装产品相比的开源打包工具。

  一般的需求试用VS

自带的就可以了,更复杂的需要用到InstallShield,这样看起来开源的就没啥意义了。

  十一、IoC容器

  Spring.net是从java的Spring

Framework移植过来的。java的Spring包含了许多功能和特性,在当前的Spring.net都有提供。Spring.net最初发布的版本包含了一个很有特色的IoC容器。

  Castle是一组应用开发的工具,内含一个简单的IoC容器。

  StructureMap是.NET环境下的一个轻量级依赖注入工具,StructureMap也是一个灵活的、可扩展的通用“插件”机制的.NE

  我用过StrucutureMap,但是给我的感觉是,试用这个似乎没多发帮助。

  十二、网络客户端

  .NET FTP Client是C#编写的开源类库。

  .NET Telnet是微软.NET

Framework下的C#开发的开源telnet类库。它的灵感来至Java Telnet Application。

  metro这个项目是C#编写的类库,它提供了一套丰富的类使开发IP version 4, TCP,

UDP and ICMP等工作更容易。它包含了有很有用的工具如包嗅探器,网络分析工具例如路由跟踪,ping等。

  LJ.NET是LiveJournal站点的客户端。它为LJ在线日志服务提供了简单而强大的用户接口。

  NET VNC Viewer 是一款完全用C#开发的开源VNC观察器。它兼容Smartphones,

Pocket PC和Windows的电脑(.NET CF or .NET Framework)。它比起其它观察器的优点是可以在Pocket

PC上全屏显示而且可以旋转屏幕。

  GVDownloader允许你从google videos, metacafe, putfile,

, break.com 和更多的地方快速下载内含的视频和多媒体。它的包含一个强劲IE插件和位于你系统托盘的独立程序。

  DotNetOpenMail能够使你在微软.net框架开发的asp.net,

WinForm应用程序发送Email。它是C#编写的开源组件,它不需要使用System.Web.Mail类库就可以容易的创建带附件HTML和

Plain-text的Email。程序员不需要知道很多相关的细节就可以使用不同的字符集或不同的MINE编码来创建

multipart/alternative,multipart/related和multipart/mixed的MIME消息。

  DotMSN是一款独立的开源类库,它不需要和官方的MSN Messenger交互,因此不必安装MSN

Messenger就可以使用DotMSN和MSN

Messenger服务通信.DotMSN是C#编写的,所以.NET环境支持的语言都能够使用.DotMSN类库使用简单而且实现方便。它灵活,坚固,

轻量级利于整合到任何应用系统.使用DotMSN的应用系统能实现从创建消息机器人到自定义客户端等各种不同的功能.如果你的应用程序需要和

Messenger服务通信,DotMSN是一个不错的工具.

  SharpSSH使用C#实现了SSH2协议,它支持SSH, SCP 和 SFTP.

  OpenPOP.NET一组和POP Servers通信的.NET类库。

  IceChat是为连接多样的IRC Servers设计的Internet Relay Chat

Client。

  lphant是为edonkey/emule开发的开源客户端程序。

  .NET FTP Client C#开发的类库。

  OpenSmtp.net 是 C# 开发的开源TP组件。它不依赖.NET Framework

的System.Web.Mail 包中的类。允许开发人员使用不同于MS TP的TP 服务器且提供了web

service而可以通过HTTP发送email。

  这里面有几个值得推荐,例如DotMsn这个,在某些场合就很有用处。

关于im服务器框架 python的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


编辑:广州明生堂生物科技有限公司

标签:应用程序,服务器,消息,开源,协议