基于C#的即时通讯工具开发

时间:2022-09-16 07:23:51

【前言】基于C#的即时通讯工具开发由文秘帮小编整理而成,但愿对你的学习工作带来帮助。本文所研究的即时通讯工具是C#编程语言开发的一个应用,主要包括以下几个方面: (1)选用Socket通讯,Socket是网络传输最基本的通讯方式。Socket有TCP/IP和UDP两种协议,本文使用了TCP/IP协议,这种是需要建立连接的协议,在通讯的时候更加安全可靠。 (2)在数据存...

基于C#的即时通讯工具开发

摘 要

本文采用SQLServer搭建后台数据库,基于MicrosoftVisualStudio2010开发一个灵活易用且安全的即时通讯软件,系统可以提供如下功能:用户注册,用户监听,广播公告,客户端之间聊天等。利用c#自带的SQL访问语句对数据库进行操作,通过Socket通讯进行客户端之间的发送和接收信息,同时基于TCP/IP协议,其稳定的通信使得软件的安全性很高。经使用验证,本软件已经具备局域网聊天的基本功能,还可以进一步完善功能,使之用途更加广泛。

【关键词】即时通讯 SQL Server C# Socket TCP/IP

互联网的发展带动了即时聊天工具的发展,如:QQ、MSN、阿里旺旺都成为本世纪最流行的通讯工具。但是由于互联网的公用性,很多企业或者公司出于对自己内部信息的保护性,会自行开发自己企业或者专用的局域网即时聊天工具,或者使用别人开发的即时通讯软件。很多小型或者中型企业使用起来不方便,本文是基于C#开发的一款即时通讯软件。利用了Socket网络通讯和SQL Server数据库进行开发。具有一定的实用性。

1 解决方案

本文所研究的即时通讯工具是C#编程语言开发的一个应用,主要包括以下几个方面:

(1)选用Socket通讯,Socket是网络传输最基本的通讯方式。Socket有TCP/IP和UDP两种协议,本文使用了TCP/IP协议,这种是需要建立连接的协议,在通讯的时候更加安全可靠。

(2)在数据存储方面,使用了Microsoft SQL Server,Mircrosoft SQL Server是常用的关系型数据库管理系统之一。在C#中,提供直接与SQL数据库连接的语句,被封装成了API供开发者使用。使用SQL2005可进行添加、修改和删除等操作。满足了我们对用户信息的储存和查询。

(3)使用C#作为开发语言。C#的优势在于它是从C,C++和JAVA发展而来,继承了它们的优点,又有自己独特的优势。借助C#的IDE,程序员可以方便的建立,运行,测试和调试C#程序,更便于程序的开发和维护。

(4)在软件开发过程中,使用Microsoft Visual Studio2010(下文简称VS)作为开发平台,VS是美国微软公司的开发工具包系列产品中的一个。2010年对外,经过4年时间运行,现已比较稳定的应用于开发控制台程序和WinForm窗体程序。VS是目前最流行的Windows平台应用程序的集成开发环境,目前最高基于.NET Framework4.0框架。本设计使用的是.NET Framework4.0框架。

2 系统整体设计

整个系统中数据库包含一个表,表内信息和整个流程的关系UserName和password储存登陆权限,ChatName、IPAddr和State储存聊天基础属性。此表构成了用户的登录认证和聊天列表的实现。

用户登录成功后,显示主界面,左边树形图中显示可以聊天的用户和其状态。右边一个是接收到的信息,下方是发送框。发送给其他用户需要其在线状态下。当你处于在线状态后,其他用户发送给你信息,你会接收到他发来的信息。服务器端会显示连接用户的基本信息,管理员可以手动断开用户的连接、监听聊天内容及发起公告信息等功能。

3 系统功能模块实现

3.1 登录模块

登录模块的实现是通过客户端在登录的时候,向服务器发送登录请求,在传输的字节中附有自己定义的命令格式。命令格式通过#符号把各类信息分割开,第一个字符串信息是登录标志,第二个和第三个依次是登录的用户名和密码。当服务器接收到客户端传输过来信息后,服务器对信息进行解析,通过对用户名和密码的在数据库的匹配来认证用户的正确性。当用户名和密码匹配成功后,服务器会把所有的用户依次发给此次登录的用户。此次登录的用户会接收到聊天好友列表,同时在线的客户端也会收到服务器的更新好友列表在线情况的信息。

3.2 黑名单模块

对于公司内部的局域网通信,其最根本的出发点是安全,所以本设计中服务器还起到侦听所有用户聊天内容和连接情况的作用,当服务器发现有非法用户连接,则可以对非法的用户IP进行拉入黑名单操作,拉入黑名单后,服务器会向客户端发送信息,客户端解析后自动退出程序。如其再次登录时,服务器端会根据一个标志位判定此次连接的用户在黑名单中,不准予其连接。客户端会提示错误而不能连接。服务器端也可以对黑名单进行取消操作。这个模块优化了系统的安全性和主导性。

3.3 广播信息模块

服务器端起到侦听、管理和维护的作用,所以本文设计了向所有在线用户发送广播信息的功能,具体实现是通过自定义命令中接入广播命令,服务器通过对所有在线的客户端发送带有广播命令的自定义信息。客户端解析后把接收到的广播信息显示在TextBox文本框中,从而起到公示的作用。

3.4 聊天模块

即时聊天工具的设计主要在于聊天模块,聊天就是指两个客户端之间能进行信息的交互。具体实现是通过一个客户端发送带有命令Chat的信息,信息中通过#把聊天内容和所要聊天客户端的IP地址一起发送过去,当服务器接收到命令信息后,解析信息,从在线的客户端中找到对应IP的客户端,然后服务器把聊天内容再组帧发送给目标客户端,从而实现聊天的过程。在聊天模块中,还可以加入了图片的发送,是通过C#读取图片的函数,把图片读取到数据流中,然后通过类型转换,把图片类型转换成16进制数据。把图片的16进制数据通过Socket传输给目标客户端,目标客户端接收到数据后把数据解析成图片,再通过转换把图片数据编码成图片形式存入PC机中,从而实现了图片的输送。

4 测试结果

系统测试是开发完成的信息系统正式交付用户使用前必须要做的工作之一,只有通过测试的程序才能交付用户使用。在测试过程中会遇到很多开发的时候想不到的用户需求和BUG,解决BUG和提高用户友好交互是系统测试主要的工作任务。在各个平台上软件的兼容性和可用性是开发完成后所要考虑的一个因素。完整的系统测试包括功能测试、数据库测试、可用性测试、兼容性测试等几个方面。

5 结束语

本设计利用Sql Server作为数据库管理工具,基于Microsoft Visual Studio 2010设计开发了一个灵活易用的即时通讯软件,包括用户登录认证、用户的添加、非法用户的断开、发送公告信息、客户端之间独立通讯、监听客户端聊天等功能。实现时,利用C#中API访问数据库进行操作,实现了多方即时通讯。实验表明,本系统已经能够满足局域网条件下的即时通讯要求,随着后期工作的不断改进,相信功能会不断完善,具备越来越丰富的实用功能。

参考文献

[1]明日科技.C#从入门到精通[M].北京:清华大学出版社,2012.

[2]齐立波.C#入门经典[M].北京:清华大学出版社,2010.

[3]明日科技.SQL Server从入门到精通[M].北京:清华大学出版社,2012.

[4]朱晔.C#与.NET 4高级程序设计(第5版[M].北京人民邮电出版社,2010.

[5]陈向阳,巨修练.网络科学:原理与应用[M].机械工业出版社,2010.

[6]王国辉,,李钟尉.JSP程序开发范例宝典[M].北京:人民邮电出版社,2007.

作者简介

严真卿(1991-),男,大学本科学历。主要研究方向为嵌入式系统应用。

杨增汪(1972-),男,硕士学位,讲师。主要研究方向为嵌入式系统应用、电器设备的控制与检测。

作者单位

江苏师范大学科文学院 江苏省徐州市 221116

上一篇:平安城市视频监控平台研究 下一篇:Android手机银行系统的实现