计算机通信与信息系统.ppt

上传人:文库蛋蛋多 文档编号:2349061 上传时间:2023-02-14 格式:PPT 页数:22 大小:376.04KB
返回 下载 相关 举报
计算机通信与信息系统.ppt_第1页
第1页 / 共22页
计算机通信与信息系统.ppt_第2页
第2页 / 共22页
计算机通信与信息系统.ppt_第3页
第3页 / 共22页
计算机通信与信息系统.ppt_第4页
第4页 / 共22页
计算机通信与信息系统.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《计算机通信与信息系统.ppt》由会员分享,可在线阅读,更多相关《计算机通信与信息系统.ppt(22页珍藏版)》请在三一办公上搜索。

1、计算机通信与信息系统课程设计,内容安排,题目介绍Socket编程基础题目1:网络I/O程序的实现简单消息传送程序实例讲解,1.题目介绍,(1)网络I/O程序设计功能要求:客户端/服务器方式实现客户端进程上传文件到服务器端。服务器端程序支持同时与多个客户端进行连接。相关知识点:Socket编程,文件读写、多线程编程。,1.题目介绍,(2)HTTP中间代理程序功能要求:设计一个WEB代理服务器,客户端浏览器提交请求给代理服务器,代理服务器根据客户端的请求地址的合法性,和服务器返回网页内容是否包含某关键字,确定返回给客户端的内容。相关知识点:socket编程、HTTP协议,1.题目介绍,(2)HTT

2、P中间代理程序,浏览器客户端,WEB服务器,Socket编程基础Socket是什么,Socket是进程之间使用Unix文件描述符(file descriptor)进行通信的一种方式。在Unix系统中,通过对文件描述符的read和write操作实现I/O操作。Everything in Unix is a file!Internet SocketTCP/IP,Socket编程基础两种Internet Sockets,Stream socketTCP提供可靠的有连接的双向通信:有确认、拥塞控制、流量控制等。Datagram socketUDP无连接:不需要维护一个打开的连接,所做的只是将数据打包并

3、发出去。,Socket编程基础Socket提供的系统调用或函数,1.Socket编程基础Socket提供的系统调用或函数,Socket编程基础重要的数据结构,sockaddr结构,存放各种sockets的地址信息struct sockaddr unsigned short sa_family;/address family,AF_xxxchar sa_data14;/14 bytes of protocol address;/总长度16字节,Socket编程基础重要的数据结构,sockaddr_in,存放Internet socket地址信息struct sockaddr_in short i

4、nt sin_family;/Address familyunsigned short int sin_port;/Port numberstruct in_addr sin_addr;/Internet addressunsigned char sin_zero8;/Same size as struct sockaddr;struct in_addr uint32_t s_addr;/thats a 32-bit int(4 bytes);,Socket编程基础网络字节序的转换,不同的硬件平台在内存中表示数据方式是不同的,有两种:little-endian:低字节在低地址,高字节在高地址b

5、ig-endian:高字节在低地址,低字节在高地址网络字节序被统一定义成big-endian方式,Socket编程基础网络字节序的转换,htons()host to network shorthtonl()host to network longntohs()network to host shortntohl()network to host longsin_addr 和 sin_port必须为网络字节序,而sin_family不需要,为什么?,Socket编程基础IP地址的处理,问题1:如何把IP地址“192.168.0.1”填到sockaddr_in类型的变量ina中?ina.sin_a

6、ddr.s_addr=inet_addr(10.12.110.57);inet_aton(10.12.110.57,问题2:如何将sockaddr_in中的IP地址转换为形如“192.168.0.1”的字符串?inet_ntoa(ina.sin_addr),Socket编程基础客户机/服务器模式,1.Socket编程基础客户机/服务器模式,Socket编程基础不同平台下编写socket程序,Linux平台下,需要安装gcc编译器,用cc命令编译c源文件,c源文件需要包含定义相关系统调用的的头文件,如:#include#include,Socket编程基础不同平台下编写socket程序,Wind

7、ows下VC+#include WSADATA wsaData;if(WSAStartup(MAKEWORD(1,1),工程设置包含对wsock32.lib 的链接,2.网络I/O程序,功能要求:,网络间进程的文本消息传递,网络间进程的文件传送,文件传送服务器,支持同时多个连接,2.网络I/O程序,客户端文件传送过程解析:客户端与服务器连接后,以消息的形式将文件名和文件大小发给服务器打开要发送的文件,读取一部分数据发给服务器循环第2步,直到到达文件尾服务器端文件接收过程解析:收到文件名和长度后,创建文件接收客户端发送的数据保存到文件中循环第2步,直到收到数据长度为文件名长度需要用到C语言的文件

8、读写函数:fopen,fread,fwrite,fclose,fseek等。,2.网络I/O程序,服务器端支持同时多个客户端连接方法:两个端口:监听端口和数据传送端口服务器监听到一个连接后,新建线程或进程来处理与这个连接的文件传送,新线程或进程会随机分配一个端口地址用来数据传送原有线程或进程继续监听其他连接平台差异:Linux或Unix:用fork()系统调用新建进程Windows:CreateThread函数创建新线程,参考资料,Beejs Guide to Network ProgrammingUsing Internet SocketsLinux下用man命令查看系统调用的帮助Windows下安装MSDN查看windows socket函数库,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号