c某聊天室程序.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机学院课程设计 专 业: 08网络工程 课程名称: TCP/IP协议分析实验 课题名称: 基于TCP协议的C#聊天程序 教 师: 桂学勤 学 号: 084221019 时 间: 2010 年 6月 18日 目录 一:需求分析 2 1.1编写目的 2 1.2开发环境 2 1.3功能介绍 2 1.4Socket通信机制 2 二:代码实现 3 2.1服务器端主要代码 3 2.2客户端主要代码 10 三:程序运行界面 14 3.1登录界面 14 3.2登录成功后的聊天界面 14 3.3服务器端显示界面 15 四:总结 15 基于TCP协议的C#聊天程序 前言 随着互联网技术的飞速发展,基于网络的即时通信技术也给人们带来了诸多便利,人们也慢慢体会到了网上聊天的乐趣与无拘束的感觉。聊天工具作为当今使用最为广泛的即时通信工具之一,可以方便的同网络上的好友在线交流。在中国,最流行的莫过于腾讯公司的QQ,伴随着技术的不断升级,腾讯公司也为我们带来了越来越多的精彩的服务。这里我将利用Socket编程技术模拟QQ聊天功能,实现一个简单的在线聊天室。 一:需求分析 1.1编写目的 编写该软件能够对自己所学的东西进行一次系统的回顾,加深对TCP协议的理解以及提升自己实际开发的能力。 1.2开发环境 操作系统:windows xp sp3 内存:2G CPU:AMD Athlon(tm) 64 X2 Dual Core Processor 5200+ 2.71GHz 编程软件:Microsoft Visual Studio 2010 1.3功能介绍 该程序是利用c#语言编写的一个基于Socket的简单聊天软件,最要实现了用户登录,但登录时只需要提供用户名,不需要输入密码。具有私聊和群聊两种聊天模式,即允许多人在线聊天,并且在线用户聊天时,可以将消息发送给一个用户,亦可以将消息发送给所有人。聊天的消息内容包括:用户名称、发送时间、发送正文、以及消息模式。断开连接的同时会关闭客户端,此时用户若希望聊天,需要再次登录服务器。 1.4Socket通信机制 Socket编程是建立在应用层TCP/IP协议之上的。目前最流行的是客户机/服务器模式,在面向连接的 Client/Server 模型中,Server 端的 socket 总是等待一个 Client 端的请求。客户机/服务器模型的工作流程图如下图所示: 服务器程序特点: 一般启动后就一直处于运行状态,以等待客户机进程的请求; 使用的端口往往是熟知端口,便于客户机进程连接请求; 一般拥有较多的系统资源,以便及时响应各个客户机进程的请求; 可以并行处理多个客户机进程的请求,但数目是有一定的限制; 在通信时一般处于被动的一方,不需要知道客户机的IP地址和端口信息。 客户机程序的特点: ① 在需要服务器进程的服务时将向服务器进程请求服务,并建立通信连接,得到满足并完成处理后就终止通信连接; ② 使用向系统申请的临时端口与服务器进程进行通信,通信完成后将释放该端口; ③ 拥有相对较少的系统资源; ④ 在通信时属于主动的一方,需要事先知道服务器的IP地址和端口信息 客户机与服务器模式又分为两大类:面向连接的交互(TCP)和面向无连接的交互(UDP),本程序是面向连接的交互,交互机制如下图: 二:代码实现 2.1服务器端主要代码 负责监听客户端请求,并根据客户端命令执行不同操作的Listener类,Listener.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Sockets; using System.Net; using System.Threading; using System.Collections.Specialized; using System.Runtime.Serialization; using System.IO; using System.Runtime.Serialization.Formatters.Binary; namespace TalkerServer { class Listener { public delegate void ShowMsg(ListenWindow lisWin, string svrInfo);//svrInfo要显示的服务器信息,lisWin显示的窗口对象 private

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档