C网络应用编程课程设计.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C网络应用编程课程设计

郑州轻工业学院 课 程 设 计 报 告 课程设计名称: C#网络应用编程课程设计 指导教师: 姓名: 学号: 班级: 提交日期: 2015.7.2 目的 通过开发一款网络聊天程序,?熟练掌握多线程编程技术和TCP应用编程技术。?通过本实训,?达到如下目标:? 1)理解委托的概念,?掌握线程之间通过委托与控件交互的方法。? 2)理解异常处理的机制,掌握异常处理语句的用法。 ?3)理解线程的概念,?掌握多线程编程的一般方法。 ?4)掌握基于TCP的应用编程技术?。? 题目 使用c#编程语言,?开发一款网络聊天程序,?玩家通过客户端登陆远程的服务器,?登陆成功后可以与其他在线的玩家通信。 功能描述 1)?当服务器开启服务后,?允许任何一个玩家通过客户端登陆服务器。? 2)?每当有玩家登录或退出时,?每一个在线的玩家都会刷新玩家列表。? 3)?当玩家登陆成功后,?可以通过服务器端与任何一个在线的玩家聊天? 需求分析 定义数据字典如下: 用户(User):在网络聊天程序中,用户是已登陆的玩家。用户具有玩家的用户名、?客户端与服务器之间建立的?Tc连接等属性?。?在程序中,?用户负责向服务器发送和接收数据。 设计说明 客户端发送给服务器端的命令有如下3种:??? 1)1ogin,用户名:玩家请求登陆服务器。玩家点击“登陆按钮后,?就会发送1ogin命令,?其中的用户名就是请求登陆玩家的用户名?。?? 2)1ogout,用户名:?玩家请求退出服务器。?玩家关闭客户端的主窗体后,?就会发送1ogout命令,?其中的用户名就是请求退出玩家的用户名?。?? 3)talk,用户名1?,用户名2,信息:?玩家发出聊天信息?。?玩家点击?“发送按钮后,就会发送talk命令,其中的用户名1是发出信息的玩家,?用户名2是接收信息的玩家?。??? 服务器端发送给客户端的命令有如下4种:? 1)1ogin,用户名:服务器接受到1ogin命令后,检査用户集合,如果没有重名的在线用户,则给所有用户发送1ogin命令,通知玩家更新用户列表。?? 2)1ogout,用户名:?服务器接收到1ogout命令后,?向所有在线用户发送1ogout命令,?通知其他玩家更新用户列表?。?? 3)talk,用户名1?,用户名2,信息:?服务器接收到talk命令后,?先给用户2发送talk命令;?发送成功后,?再给用户1发送talk命令,?通知用户1?,?聊天信息发送成功。 源代码 User类 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net.Sockets; using System.Text; using System.Threading; using System.Threading.Tasks; namespace ChatServer { public class User { public BinaryReader br { get; private set; } public BinaryWriter bw { get; private set; } private string userName; private TcpClient client; public User(TcpClient client, bool isTask) { this.client = client; NetworkStream networkStream = client.GetStream(); br = new BinaryReader(networkStream); bw = new BinaryWriter(networkStream); if (isTask) { Task.Run(() = ReceiveFromClient()); } else { Thread t = new Thread(ReceiveFromClient); t.Start(); } } public void Close()

文档评论(0)

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

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

1亿VIP精品文档

相关文档