- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- CESSNA525奖状CJ1飞机EFIS系统第三部分.ppt
- CESSNA525奖状CJ1飞机动力系统.ppt
- CESSNA525奖状CJ1飞机引气和空调系统.ppt
- CET4完形填空常用词组固定.doc
- CFA二级复习材料.doc
- chap5道路绿化植物配置.ppt
- Chapt05相平衡.ppt
- Chapter4Inquiryandreply外贸函电课件.ppt
- clarahughes课件.ppt
- CocoChanel香奈儿女士及其品牌背后的故事英语介绍.ppt
- 中国国家标准 GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- 《GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计》.pdf
- 中国国家标准 GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- 《GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置》.pdf
- 中国国家标准 GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- GB/T 17889.4-2024梯子 第4部分:铰链梯.pdf
- 《GB/T 17889.4-2024梯子 第4部分:铰链梯》.pdf
文档评论(0)