1 需求分析。
1)课程设计目的。
开发一个专用于实现两台计算机之间即时通讯的软件,以方便两台计算机之间信息的交流。,在连接并通信时,尤其是近程的即时通讯,彻底的脱离了远程的服务器,避免了和远程服务器连接时过多的浪费网络资源。并且避免了服务器忙或与服务器无法连接时,浪费过多时间用于和服务器建立连接!
因此,这个软件是极具适应性和实用性的即时通讯软件!本次课程设计的目的是学习基于udp协议实现网络聊天程序,已达到学会面向无连接方式的程序设计方法,并理解网络编程中面向无连接的概念。
2)课程设计的内容。
用户数据报(udp)是一个无连接协议,使用这种协议时,并不需要在两台计算机之间建立固定的连接,也就是说,通信双方没有服务器和客户机之分,它们之间进行的是对等通信,所以它的优势很明显,是现代通信不可或缺的一部分。所以,利用它的优势设计一个可以实现私聊和群聊的软件,实现两台计算机间的即时通讯。
3)课程设计要求。
基于udp协议实现一对一的聊天和一对多的聊天,提供友好的用户界面,便于用户进行操作。
根据目前使用聊天程序的用户需求显示,用户对于聊天程序主要有以下几点要求:
1)聊天功能:可以实现实时接收和发送文字信息,并能支持公聊和私聊的方式。
2)用户功能:可以查看对方的开放信息,以及发送方的ip。
2 原理概述。
网络会议时基于局域网或internet网的实时的、交互的计算机应用系统,由于它具有低成本、少失误、可扩展的优点,已经被广泛应用于各个领域中。编写这类程序时,如果采用单薄方式,由于发送效率低,是不可取的;如果采用广播方式,显然达不到区分特定数据接收对象目的。而采用组播方式,既可以实现一次向所有目标节点发送数据,也可以达到只对特定对象才能接收的目的。
3 功能模块调用流程设计:
private void setlistboxitem(listbox listbox, string text, listboxoperation operation)
/listbox操作函数。
private void formmeeting_load(object sender, eventargs e)
/ formmeeting窗体加载函数。
public static void sendmessage(ipaddress ip, string sendstring)
/发送消息函数。
private void receivemessage()
/接收消息函数。
private void textboxmessage_keypress(object sender, keypresseventargs e)
/键值判断函数。
private void form1_formclosing(object sender, formclosingeventargs e)
/窗体关闭事件。
private void buttonlogin_click(object sender, eventargs e)
/开始聊天按钮单击事件。
private void buttonlogout_click(object sender, eventargs e)
/退出按钮单击事件。
private void button1_click(object sender, eventargs e)
/群聊判断按钮单击事件。
private void listboxaddress_mousedoubleclick(object sender, mouseeventargs e)
/群成员窗口鼠标双击事件。
1 界面设计与运行效果图。
登录窗口。修改昵称选择班级登录。
进入聊天窗口。
开始聊天。开始聊天两名聊天者进入聊天室。
群聊中。双击私聊对象后右上“群聊”按钮变为私聊人姓名。
开始私聊。点击“清屏”按钮后。
点击右上按钮还原为“群聊”
桌面右下方的小图标双击打开程序右键可显示主窗体和退出。
点击“退出”后部分窗体变灰聊天窗体显示聊天者退出。
关闭程序是弹出确认关闭窗口。
2 主要源**。
1)formlogin的部分**。
private void login_load(object sender, eventargs e)
public static string qname; /昵称。
public static string group; /班级。
private void button1_click(object sender, eventargs e) /点击登录。
private void button2_click(object sender, eventargs e) /点击取消。
2)组别选择
if ( 101021")
brodercastip = 224.100.0.1
if ( 101022")
brodercastip = 224.100.0.2
if ( 101023")
brodercastip = 224.100.0.3
if ( 101024")
brodercastip = 224.100.0.4
3)listbox管理。
private void setlistboxitem(listbox listbox, string text, listboxoperation operation)
string cc;
if ( true)
listbox, text, operation);
elseif (operation ==
if (listbox ==listboxaddress)
if ( false)
if (text !=
cc = string oo = cc[0];
<" oo + 进入。")
elseif (text!= 进入 }
else if (operation ==
cc = string oo = cc[0];
课程设计报告格式 课程设计
洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每...
课程设计总结,课程设计报告
课程设计总结,课程设计报告。3.尝试应用项目管理软件进行项目进程的规划管理 绘制甘特图,不作硬性要求 二 选题说明。人事管理是企业信息管理的重要部分,面对大量的人事工资信息,财务部门采用人力处理将浪费大量的时间 人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动...
课程设计 课程设计报告格式
学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...