实现基于TCP套接字的简单的服务器与客户端通信实验报告.doc
《实现基于TCP套接字的简单的服务器与客户端通信实验报告.doc》由会员分享,可在线阅读,更多相关《实现基于TCP套接字的简单的服务器与客户端通信实验报告.doc(5页珍藏版)》请在冰豆网上搜索。
计算机科学与技术系
实验(项目)报告
一、基本信息
实验(项目)名称
实现基于TCP套接字的简单的服务器与客户端通信
课程名称
Linux系统编程
学生层次
本科
学生专业
信息工程
学生年级
2014级
学生班级
14201
学生学号
14310920101
学生姓名
黎子涵
完成日期
2016年12月25日
指导教师
董祥千
报告成绩
二、目的与要求
目的:
通过实验掌握Linux环境下基于TCP套接字编程的基本步骤和方法。
要求:
1.掌握网络编程的基本框架;
2.了解客户端、服务器的基本概念;
3.掌握TCP套接字编程的基本流程及程序的调试方法。
三、完成实验(项目)过程和效果
内容:
1.程序结构设计;
2.程序数据设计;
3.程序基本流程;
4.编码、调试及运行。
server代码:
client代码:
步骤:
1.程序结构设计
1)服务器端结构
先启动,进行socket、bind、listen、accept、一系列准备工作,然后如果没有建立连接,则服务器处于阻塞状态,等待客户端连接。
2)客户端结构。
客户端启动后,首先向服务器端发起建立连接的请求,得到同意后,连接建立成功,客户端和服务器端开始进行数据通信,客户机完成通信工程后释放链接,关闭套接字。
2.程序数据设计
1)服务器端相关数据:
监听套接字描述符、连接套接字描述符intsockfd,client_fd;
服务器端地址structsockaddr_inmy_addr
客户端地址structsockaddr_inremote_addr
2)客户端相关数据
套接字描述符intsockfd;
服务器端地址结构structsockaddr_inserv_addr;
保存接收到的数据charbuf[MAXDATASIZE];
接收的数据字符intrecvbytes;
3.程序基本流程图。
四、知识应用以及经验总结
1.编写UDP通信程序?
基于UDP协议进行通信不同于TCP,UDP套接字通讯方式是一种面向无连接的通信工程,通信双方不必建立连接即三次握手。
指定IP即可通信,但不可靠。
2.监听套接字和连接套接字的区别?
监听套接字,用来监听一个端口,当有一个客户与服务器连接时,它使用这个一个端口号,而此时这个端口号正与这个套接字关联。
当然客户不知道套接字这些细节,它只知道一个地址和一个端口号。
连接套接字是当收到客户请求后,服务进程accept被唤醒,生成一个新的连接套接字,进行连接,服务器通过连接套接字与客户端进行数据的发送和接收。