您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > Linux高级编程实验实验3报告
电子科技大学实验报告学生姓名:学号:指导教师:李林实验地点:清水河主楼A2-412实验时间:2016.11.23一、实验室名称:Linux环境高级编程实验室二、实验项目名称:基本TCP套接口通信库封装三、实验学时:8学时四、实验目的:学会对TCP套接口的通信机智进行封装,尝试使用不同的方式完成。五、实验内容:对基本TCP套接口通信机制进行封装。要求使用以下五种编程范式,封装通信库;并使用五种封装后通信库,实现echo服务器和客户端。传统C的结构化程序设计思想面向对象的程序设计思想基于接口的程序设计思想静态的面向对象的程序设计思想面向方面的程序设计思想六、实验步骤:一般而言,客户端的流程如下:(1)创建套接字(socket)。(2)向服务器发出连接请求(connect)。(3)和服务器端进行通信(send/recv)。(4)关闭套接字。而服务器端的流程如下:(1)创建套接字(socket)。(2)将套接字绑定到一个本地地址和端口上(bind)。(3)将套接字设为监听模式,准备接收客户端请求(listen)。(4)等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept)。(5)用返回的套接字和客户端进行通信(send/recv)。(6)返回,等待另一个客户请求。(7)关闭套接字。(一)传统C的结构化程序设计思想程序部分代码如图1.1所示,其功能是:服务器端把自己的进程号传给客户端(图是我在图形界面下getdit软件中截取的)。图1.1C版本的server程序客户端程序如下:图1.2C版本的client程序经过g++编译,运行结果如图1.3所示,完成了对服务器进程的ID获取:(a)tty1下运行服务器端(b)tty2下运行客户端图1.3运行结果显示(二)面向对象的程序设计思想程序代码如图2.1所示:图2.1C++版的server程序图2.2C++版本的client代码经过g++编译,运行结果如图2.3所示,完成了对服务器进程的ID获取:(a)server端(b)client端图2.3运行结果(三)基于接口的程序设计思想程序服务端代码如图3.1和客户端代码如图3.2所示:图3.1server程序图3.2client程序经过编程,然后make,再运行。服务器端结果如图3.3的(a),客户端结果如图(a):(a)(b)图3.3运行结果(四)静态的面向对象的程序设计思想程序代码如图所示4.1和图4.2所示。图4.1server程序图4.2client程序通过makefile,再运行后的结果如图所示:(a)(b)图4.3运行结果图七、总结及心得体会:我发现其实vi环境下编程不怎么好用,再getdit下反而速度还提升了,可能是习惯使然吧。创新思维有限,然后就把程序弄懂了再改变一下。八、对本实验过程及方法、手段的改进建议:没有建议,喜欢李老师的完美的课程。报告评分:指导教师签字:
本文标题:Linux高级编程实验实验3报告
链接地址:https://www.777doc.com/doc-8591092 .html