人人范文网 范文大全

计算机网络课设

发布时间:2020-03-03 04:55:20 来源:范文大全 收藏本文 下载本文 手机版

计算机网络应用课程设计

报告

系 (院):

计算机科学学院 专业班级: 计科11511 姓

名: 钟灿均 学

号: 201503687 指导教师: 余绍文 设计时间: 2017.6.12 - 2017.6.23 设计地点: 12教1楼机房

一、课程设计目的和意义

计算机网络课程设计的目的,是为了让我们更深入地掌握计算机网络的核心内容,实现理论与实践相结合。让学生用具体的实践成果,体现对理论知识的掌握程度。有利于学生提高计算机网络的实践能力,加深对计算机网络理论知识的理解。其基本目的是:

1. 培养学生理论联系实际的设计思想,训练综合运用所学的基础理论知识,结合生产实际分析和解决网络应用中问题的能力,从而使基础理论知识得到巩固和加深。 2. 学习掌握网络应用工程的一般设计过程和方法。

二、设计题目和要求

1.编写程序,实现系统的基本功能;

2.要有用户界面:要求至少采用文本菜单界面;鼓励采用图形菜单界面; 3.写课程设计报告,内容包括:  封面(参见附录I)

 需求分析:以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?给出功能模块图和流程图。同时明确规定:输入的形式和输出值的范围;输出的形式;程序所能够达到的功能;测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。  概要设计:包括程序设计组成框图,程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义)。

 详细设计:包括模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等),每个模块的算法设计说明(可以是描述算法的流程图)。其中源程序要按照写程序的规则来编写,结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。  运行结果:包括典型的界面、输入和输出数据等;

 总结:包括课程设计中遇到的问题,解决问题的过程及体会、收获、对课程设计的认识与思考等。

 附录:包括主要程序清单,要有适当的注释,使程序容易阅读。  开发环境:windows 10

 开发工具: vs2008

题目3:基于UDP协议的简易聊天机器人

设计目标:

1.了解Socket通信的原理,在此基础上编写一个聊天程序; 2.理解upd原理; 课程设计系统组成及模块功能:

1 此课程设计实现了基于UDP的客户/服务器通信程序,需要实现以下一些基本功能: 1.客户端连接聊天机器人服务器;

2.消息发送:客户端发送消息给机器人服务器。

3.消息接收:客户端接收到机器人服务器发送给他的消息。 4. 可以有多个客户端同时连接

5.智能回复功能:根据用户发送的消息内容,稍微有点智能回复。

运行效果:

服务器端和客户端截图

三、设计内容

1、UDP传送数据前并不与对方建立连接,即UDP是无连接的,在传输数据前,发送方和接收方相互交换信息使双方同步。

2、UDP不对收到的数据进行排序,在UDP报文的首部中并没有关于数据顺序的信息(如TCP所采用的序号),而且报文不一定按顺序到达的,所以接收端无从排起。

3、UDP对接收到的数据报不发送确认信号,发送端不知道数据是否被正确接收,也不会重发数据。

4、UDP传送数据较TCP快速,系统开销也少。

5、由于缺乏拥塞控制(congestion control),需要基于网络的机制来减小因失控和高速UDP流量负荷而导致的拥塞崩溃效应。换句话说,因为UDP发送者不能够检测拥塞,所以像使用包队列和丢弃技术的路由器这样的网络基本设备往往就成为降低UDP过大通信量的有效工具。数据报拥塞控制协议(DCCP)设计成通过在诸如流媒体类型的高速率UDP流中增加主机拥塞控制来减小这个潜在的问题。

从以上UDP协议特点可知,UDP提供的是无连接的、不可靠的数据传送方式,是一种尽力而为的数据交付服务。

1.服务端

1.2.3.4.5.加载协议栈; 创建套接字;

将套接字绑定到一个本地地址和端口bind; 等待接收数据recvfrom; 关闭套接字;

2.客户端

1.2.3.4.加载协议栈;

创建套接字socket;

向服务器发送数据sendto; 关闭套接字;

2 3.相关代码显示:(客户端)

int main(int argc, char* argv[]) {

system(\"@color 0e\"); WORD socketVersion = MAKEWORD(2, 2); WSADATA wsaData; if (WSAStartup(socketVersion, &wsaData) != 0) { } sockaddr_in sin; sin.sin_family = AF_INET; sin.sin_port = htons(8888); sin.sin_addr.S_un.S_addr = inet_addr(m); int len = sizeof(sin); return 0; 以上代码为相关版本信息及热启动的一些操作;;

结构体端口号及相关地址信息以及转化函数,将输入的信息转化为计算机可识别的二进制代码,进行相关构造

char * sendData = new char[255]; cout > sendData; while (strcmp(sendData, \"#\") != 0) {

sendto(sclient, sendData, strlen(sendData), 0, (sockaddr *)&sin, len); char recvData[255]; int ret = recvfrom(sclient, recvData, 255, 0, (sockaddr *)&sin, &len); if (ret > 0) {

} recvData[ret] = 0x00; cout

SOCKET serSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); if (serSocket == INVALID_SOCKET) {

} printf(\"socket error !\"); return 0; 3

if (bind(serSocket, (sockaddr *)&serAddr, sizeof(serAddr)) == SOCKET_ERROR) {

} sockaddr_in remoteAddr; int nAddrLen = sizeof(remoteAddr); char * sendData = new char[255]; char recvData[255]; while (true) {

int ret = recvfrom(serSocket, recvData, 255, 0, (sockaddr *)&remoteAddr, //printf(recvData); if (ret > 0) {

} struct Ro { char recv[255]; char send[255]; recvData[ret] = 0x00; printf(\"接受到一个连接:%s \\r\\n\", inet_ntoa(remoteAddr.sin_addr)); cout

&nAddrLen); }Ro; FILE *fp; fp = fopen(\"G:\\机器人问答机制.txt\", \"r\"); while (!feof(fp)) {

} fscanf(fp, \"%s %s\", Ro.recv, Ro.send); if (strcmp(recvData, Ro.recv) == 0) {

} else { } strcpy(sendData, Ro.send); break; strcpy(sendData, \"对不起,我不知道\"); 4

fclose(fp); cout

四、设计成果以及心得 1.成果

2.心得

通过对课设的相关的操作,加强了对于相关知识的理解,对于知识的应用也得以加强,在课设过程中,聊天机器人制作较为有趣,对于TCP与UDP的通信方式有了进一步的理解和加强,对于socket编程的相关基础也得以进一步的理解和学习。在今后的学习过程中希望可以将所学知识应用于实际,学以致用。而且对于课设中存在的问题和不足,以及通过老师的讲解,对一些算法加以分析和改进,从而不断完善课设内容,对内容的理解得以加深。

5

指导老师意见:

成绩:

6

教师签名: 2017年6月23日

C1 CRC12计算机网络课设

操作系统课设

单片机课设

EDA课设

课设心得体会

Matlab课设

课设规范

课设说明

课设小结

课设心得

计算机网络课设
《计算机网络课设.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档