成都工业学院计算机网络专周报告.docx

上传人:b****5 文档编号:8280843 上传时间:2023-01-30 格式:DOCX 页数:10 大小:137.10KB
下载 相关 举报
成都工业学院计算机网络专周报告.docx_第1页
第1页 / 共10页
成都工业学院计算机网络专周报告.docx_第2页
第2页 / 共10页
成都工业学院计算机网络专周报告.docx_第3页
第3页 / 共10页
成都工业学院计算机网络专周报告.docx_第4页
第4页 / 共10页
成都工业学院计算机网络专周报告.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

成都工业学院计算机网络专周报告.docx

《成都工业学院计算机网络专周报告.docx》由会员分享,可在线阅读,更多相关《成都工业学院计算机网络专周报告.docx(10页珍藏版)》请在冰豆网上搜索。

成都工业学院计算机网络专周报告.docx

成都工业学院计算机网络专周报告

成都工业学院

课程设计报告

课程名称

计算机网络课程设计

项目名称

基于Socket的网络聊天系统的设计与实现

姓名

陆海空

班级

1506041

学号

1501352247

指导教师

周行老师

设计时间

2016年12月12日至2016年12月16日

 

 

成都工业学院·计算机工程学院

 

一.需求分析  3

1.1开发背景  3

1.2功能要求  3

1.3运行环境  3

1.4功能实现  3

二.项目设计  4

2.1程序流程图  4

2.2概要设计  5

2.3功能设计  5

2.4详细设计  7

2.4.1界面设计  7

客户端  8

服务器端...................................................................9

2.4.2程序结构设计  8

三.代码及注释............................................................................9

3.1、客户端  9

3.2服务器端  15

四.课程设计小结  17

五.参考文献  17

 

一. 需求分析

1.1开发背景

随着网络技术不断成熟,人们对于网络的依赖程度不断提高,网络似乎成了生活中必不可少的存在。

由此而产生的聊天工具也在不断成长。

类似微信、QQ等网络聊天工具的发展日新月异。

但是,现有的聊天程序也仍然存在进步的空间。

QQ一直深受人们喜爱,随着版本的不断更新,虽然其功能不断增加不断完善,但始终有很多小问题有时让人难以忍受。

在使用过程中,不断的弹窗和广告对用户的使用照成了很大程度的影响。

因此我在本次课程设计的激励下,产生了一个制作类似QQ的网络聊天工具并且“无垃圾信息”洁净聊天工具的想法,虽然该工具不够完善,但是我希望通过制作本次程序能够更好地学习计算机网络知识。

1.2功能要求

(1)登录功能。

(2)用户可以通过服务器转发,实现私密聊天和多人聊天。

(3)实现抖动和声音提醒。

(4)服务器端和客户端程序都能实时显示在线用户人数。

(5)应该具有友好、易用、美观的图形界面。

(6)无垃圾,广告信息

(7)保存和删除聊天信息。

1.3运行环境

操作系统版本:

Windows1064位

软件版本:

Visualstudio2015

1.4功能实现

1.登录验证功能。

对于账号重复等异常,给予用户提示。

2.客户通过服务器转发,实现私密聊天和多人聊天。

3.实时显示目前其它用户的状态,能够提示在线用户人数和状态等。

4.保存并查看聊天记录。

5.申请新的用户号码。

6.易用、美观的图形界面,实现系统托盘。

7.收到信息时,能够收到声音等提示信息,发送端还能通过发送抖动,提示聊天的对方。

二.项目设计

2.1程序流程图

2.2概要设计

通过C#,实现网络聊天的功能,采用WindowsSocket编程,服务器与客户端采用了TCP/IP连接方式,在设计聊天方案时,实行将所有信息发往服务器端,再由服务器进行分别处理的思路,服务器端是所有信息的中心。

由于服务器端要保存用户信息,我们利用数据库来实现这一功能,因此首先需要建立用户信息数据库。

在客户端保存聊天纪录和用户号码这一功能的实现中,采用了文件系统设计。

在信息到来及好友上线时,通过闪动托盘图标和播放不同的音乐进行提示。

建立消息链表来保存用户接收的各种消息。

2.3功能设计

客户端:

1)登录功能:

建立与服务器的连接并登录,能显示登录错误信息。

2)界面显示:

将在线好友显示在好友列表中,并实现系统托盘。

3)聊天功能:

与好友聊天。

4)聊天记录:

能保存聊天纪录,并能察看聊天纪录。

5)信息提示:

闪动托盘图标提示到来信息,并播放不同音乐来提示。

6)窗口抖动:

发送端提示聊天的对方。

服务器端:

向客户端发布系统消息。

接受来自客户端的信息并处理。

1)登录信息:

检查登录信息是否正确,并向客户端返回登录信息。

如信息正确,将在线用户发给该用户,并将该用户的状态发给各在线用户。

同时在服务器端显示。

2)聊天信息:

转发给消息指定的用户。

3)申请信息:

自动分配8位用户号码,并保存该用户,同时将信息返回给客户端。

4)用户下线:

将此用户下线消息发给各客户端,并改写用户在服务器端的状态。

程序中主要变量及函数的功能说明如下:

客户端:

privatevoidlogin_btn_Click(objectsender,EventArgse)---登陆到服务器

privatevoidsvrip_tb_TextChanged(objectsender,EventArgse)设置要连接的服务器的地址端口

privatevoidchatrcd_rtb_TextChanged(objectsender,EventArgse)--显示好友发送的信息

privatevoidsend_btn_Click(objectsender,EventArgse)----给好友发送信息

privatevoiduser_tb_TextChanged(objectsender,EventArgse)-----申请新的用户

privatevoidchatrcd_rtb_TextChanged(objectsender,EventArgse)----显示服务器消息

privatevoidmsg_tb_TextChanged(objectsender,EventArgse)-----显示消息输入文本

privatevoidnudge_pb_Click(objectsender,EventArgse)------发送窗口抖动

privatevoidbroadcast_rb_CheckedChanged(objectsender,EventArgse)------聊天模式的变更

privatevoidhide_cb_CheckedChanged(objectsender,EventArgse)-------最小化到托盘

服务器端:

用户及发送信息结构体类型:

publicvoidStartUp()-------服务器启动,并且实时更新用户在线信息

publicvoidGetConfig()------配置服务器端口号等信息

privatevoidThreadFunc(objectobj)-----系统对于发送消息、发送抖动等的异常的处理

publicvoidClose()--------关闭服务器

2.4详细设计

2.4.1界面设计

客户端

1)登陆界面

2)显示当前状态

3)最小化到托盘

4)发送抖动

5)聊天模式变更

6)发送接收消息

服务器端

1)服务器启动配置端口号

2)实时更新在线用户信息

2.4.2程序结构设计

1.客户端:

2.服务器端为控制台程序

三.代码及注释

3.1、客户端

a)登陆功能

privatevoidlogin_btn_Click(objectsender,EventArgse)

{

//验证数据合法性

if(!

ValidateInfo())

{

return;

}

intport=int.Parse(svrport_tb.Text);

//向服务器发出连接请求

TCPConnectionconn=newTCPConnection(_ipAddr,port);

TcpClient_tcpc=conn.Connect();

if(_tcpc==null)

{

MessageBox.Show("无法连接到服务器,请重试!

",

"错误",

MessageBoxButtons.OK,

MessageBoxIcon.Exclamation);

}

else

{

NetworkStreamnetstream=_tcpc.GetStream();

//向服务器发送用户名以确认身份

netstream.Write(Encoding.Unicode.GetBytes(user_tb.Text),0,Encoding.Unicode.GetBytes(user_tb.Text).Length);

//得到登录结果

byte[]buffer=newbyte[50];

netstream.Read(buffer,0,buffer.Length);

stringconnResult=Encoding.Unicode.GetString(buffer).TrimEnd('\0');

if(connResult.Equals("cmd:

:

Failed"))

{

MessageBox.Show("您的用户名已经被使用,请尝试其他用户名!

",

"提示",

MessageBoxButtons.OK,

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1