电子科技大学计算机网络编程实验报告echo服务器端

2018-12-03 19:54

实验报告课程名称:计算机网络编程 学 院:计算机科学与工程学院 专 业:计算机科学与技术 指导教师: 学生姓名:田茂

学 号:2013060103004 实验成绩:

日 期:2015年11月

电子科技大学计算机学院实验中心

电 子 科 技 大 学

实 验 报 告

一、实验二:(实验项目的名称):并发的面向连接的服务器软件的实现 二、实验室名称: 主楼A2-412 实验时间:第十一周周日9:00-12:00 三、实验目的:

1. 掌握TCP并发服务器端软件的工作原理。

2. 掌握针对ECHO服务的TCP并发服务器端软件的编程步骤和编程实现,并最终形成可执行代码。 四、实验原理:

Echo服务是一种非常有用的用于调试和检测的工具。这个协议的作用也十分简单,接收到什么原封发回就是了。 基于TCP协议的Echo服务有一种Echo服务被定义为在TCP协议上的面向连接的应用。主要用于调试和检测中。它可以基于TCP协议,服务器就在TCP端口7检测有无消息,如果使用UDP协议,基本过程和TCP一样,检测的端口也是7。是路由也是网络中最常用的数据包,可以通过发送echo包知道当前的连接节点有那些路径,并且通过往返时间能得出路径长度。 五、实验内容:

本实验主要完成针对ECHO服务的TCP服务器软件的实现,要求该服务器能并发地向多个客户提供ECHO服务,并发方式可自行选择多进程、多线程或单线程。实验内容包括:

1、编程环境的准备,要求在Linux操作系统下安装GCC或CC编译器。 2、利用Vi编辑器(或其他编辑软件)编写服务器软件代码 3、利用GCC编译器调试并形成可执行代码 4、运行服务器程序,验证功能实现。

5、在多个客户机上运行ECHO客户端软件,并发地向服务器请求ECHO服务。(也可以在同一台机器上运行多个ECHO客户程序副本) 6、程序框图如下:

六、实验器材(设备、元器件):

Ubtuntu14.04操作系统;gcc编译工具;ScureCRT工具 七、实验步骤:

本实验主要任务是编写完成基于TCP协议的服务器端网络程序,该网络服务器程序能并发向多个网络客户提供ECHO服务。

实验首先通过在服务器机器上启动基于TCP的ECHO服务,该主机运行Linux操作系统。然后在多个客户机上启动基于TCP的ECHO客户程序,这些客户程序可以并发地发起向ECHO服务器的连接请求,当网络连接建立后,用户就可以循环从键盘上输入任意字符串,并将字符串发往服务器,然后接收服务器返回的结果并打印。 具体的实验步骤如下:

1.在

Windows机上安装Linux环境, 如Vmware下安装Linux, 或装Ubuntu, 或

直接安装Linux hat等.

2.利用编辑器编写源程序,以下为

vi示例。

3.源代码如下:

#define _USE_BSD #include #include #include #include #include #include #include #include #include #include #include #include #define QLEN 32 #define BUFSIZE 4096

extern int errno;

unsigned short portbase = 0; void reaper(int); int TCPechod(int fd);

int errexit(const char *format,...);

int passivesock(const char *service, const char *transport, int qlen); int passiveTCP(const char *service,int qlen);

int main(int argc, char *argv[]){ char *service= \ struct sockaddr_in fsin; unsigned int alen; int msock,ssock; switch(argc){ case 1: break; case 2:

service=argv[1]; break; default:

errexit(\ }

msock=passiveTCP(service,QLEN);

(void)signal(SIGCHLD,(__sighandler_t)QLEN);

while(1){

alen=sizeof(fsin);

ssock=accept(msock,(struct sockaddr *)&fsin,&alen); if(ssock<0){

if(errno==EINTR) continue; errexit(\ }

switch(fork()){ case 0:

(void)close(msock); exit(TCPechod(ssock)); default:

(void)close(ssock); break; case -1:

errexit(\ } } }


电子科技大学计算机网络编程实验报告echo服务器端.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:法律逻辑学 试卷A

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: