- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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()
您可能关注的文档
最近下载
- AutoCAD2022基础教程PPT完整全套教学课件.pptx
- 【沪科】八年级物理(全一册)知识点总结.docx VIP
- 【沪科物理八年级】3.2 声音的特性 同步练习.docx VIP
- 导轨单杆切割磁感线+电容(解析版)--2024高考物理疑难题.pdf
- 新能源汽车技术专业职业生涯规划书发展报告大一全国大学生职业规划大赛模板范文1500字.pdf VIP
- 中班语言《耳朵上的绿星星》课件.pptx
- 水力学典型复习题及答案详解.docx
- TBT454.1-2021 铁路通信信号词汇 第1部分:铁路信号词汇.pdf
- Dirty Rotten Scoundrels《骗徒臭事多(1988)》完整中英文对照剧本.docx VIP
- 舒平木门加工中心培训.docx
文档评论(0)