




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华南师范大学本科学生实验报告 实验课程:互联网原理与应用 实验名称:SOCKET网络程序设计一、实验目标:a、进一步掌握UDP及TCP协议的工作原理b、掌握SOCKET编程的基本方法c、学习应用C语言与WinSock2进行简单的无连接的网络程序设计,实现网络数二、实验原理:1、关于使用套接字编程的一些基本概念(a) 半相关与全相关(b) TCP/IP协议的地址结构struct sockaddr_inshort sin_family; /*AF_INET*/u_short sin_port; /*16位端口号,网络字节顺序*/struct in_addr sin_addr; /*32位IP地址,网络字节顺序*/char sin_zero8; /*保留*/(c) 套接字类型TCP/IP的socket提供下列三种类型套接字。流式套接字(SOCK_STREAM)、数据报式套接字(SOCK_DGRAM)原始式套接字(SOCK_RAW)(d) 基本套接字系统调用 (1) 创建套接字socket() (2) 指定本地地址bind() (3) 建立套接字连接connect()与accept() (4) 监听连接listen() (5) 数据传输send()与recv() (6) 输入/输出多路复用select() (7) 关闭套接字closesocket()2、用于无连接协议(如UDP)的SOCKET系统调用流程框图3、面向连接协议(如TCP)的SOCKET系统调用流程框图三、实验设备及材料:计算机、路由器4、 实验流程或装置示意图a、用于无连接协议(如UDP)的SOCKET系统调用流程框图:Socket()Bind()等待来自客户的数据recvfrom()sendto()数据处理服务员数据(请求)数据(回答)Socket()sendto()recvfrom()客户bind()b、面向连接协议(如TCP)的SOCKET系统调用流程框图Listen()Socket()Bind()等待来自客户的连接请求accept()send()recv()数据处理服务员建立连接数据(请求)数据(回答)send()Socket()connect()recv()客户5、 实验步骤:使用UDP协议的无连接客户-服务员程序设计。根据实验原理中介绍的内容,设计一个无连接的客户-服务员系统,实现二者之间的数据传递。6、 实验程序:客户端程序:#include #include #define SERV_UDP_PORT 8888 /*服务员进程端口号,视具体情况而定*/#define CLIENT_UDP_PORT 8080#define SERV_HOST_ADDR 193.169.1.41 /*服务员地址,视具体情况而定*/#define CLIENT_HOST_ADDR 193.169.1.42#define SERVER_ADD 0xc1a90134#define CLIENT_ADD 0xc1a90133#pragma comment(lib,ws2_32.lib)/* 宏定义用来打印错误消息*/#define PRINTERROR(s)fprintf(stderr,n%: %dn, s, WSAGetLastError()/数据报通信的客户端子程序 /void DatagramClient(short nPort)SOCKET theSocket;/*创建一个数据报类型的socket*/theSocket = socket(AF_INET,/ 地址族SOCK_DGRAM, / socket类型IPPROTO_UDP);/ 协议类型:UDP/*错误处理*/if (theSocket = INVALID_SOCKET)PRINTERROR(socket();return;/*填写客户端地址结构*/SOCKADDR_IN saClient;saClient.sin_family = AF_INET;saClient.sin_addr.s_addr = inet_addr(CLIENT_HOST_ADDR); / 由WinSock指定地址saClient.sin_port = htons(nPort); / 客户端进程端口号/* 将客户端地址与已创建的socket绑定*/int nRet;nRet = bind(theSocket,/ Socket 描述符(LPSOCKADDR)&saClient, / 客户端地址sizeof(struct sockaddr)/地址长度);/*错误处理*/if (nRet = SOCKET_ERROR)PRINTERROR(bind();closesocket(theSocket);return;SOCKADDR_IN saServer; char szBuf1024;int nLen;saServer.sin_family = AF_INET;saServer.sin_addr.s_addr = inet_addr(SERV_HOST_ADDR);saServer.sin_port = htons(SERV_UDP_PORT);nLen = sizeof(saServer);while(1)/* 发送数据给服务器 */strcpy(szBuf,From the client);scanf(%s,&szBuf);sendto(theSocket,szBuf,strlen(szBuf),0,(LPSOCKADDR)&saServer,nLen);/system(pause);/* 接收来自服务器端的数据*/memset(szBuf,0,sizeof(szBuf);nRet = recvfrom(theSocket,szBuf,sizeof(szBuf),0,(LPSOCKADDR)&saServer,&nLen);if(szBuf0!=0)printf(nData received: %sn,szBuf);/while(1)/ /*准备接收数据*/memset(szBuf, 0, sizeof(szBuf);/nRet = recvfrom(theSocket,/ 已绑定的socket/szBuf,/ 接收缓冲区/sizeof(szBuf),/ 缓冲区大小/0,/ Flags/(LPSOCKADDR)&saClient,/ 接收客户端地址的缓冲区/&nLen);/ 地址缓冲区的长度/*打印接收到的信息*/printf(nData received: %s, szBuf);/* 发送数据给客户端*/ strcpy(szBuf, From the Server);/sendto(theSocket,/ 已绑定的socket/szBuf,/ 发送缓冲区/strlen(szBuf),/ 发送数据的长度/0,/ Flags/(LPSOCKADDR)&saClient,/ 目的地址/nLen);/ 地址长度/ closesocket(theSocket);return;/数据报客户端主程序 /void main()WORD wVersionRequested = MAKEWORD(1,1);WSADATA wsaData;int nRet;short nPort;nPort = CLIENT_UDP_PORT;/* 初始化Winsock*/nRet = WSAStartup(wVersionRequested, &wsaData);if (wsaData.wVersion != wVersionRequested)fprintf(stderr,n W
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 脱口秀新星选拔企业制定与实施新质生产力战略研究报告
- 温州市瓯海区卫健系统选聘医学类毕业生笔试真题2024
- 绵阳市江油市事业编制卫生专业技术人员招聘笔试真题2024
- 征信AI应用企业制定与实施新质生产力战略研究报告
- 乙丙橡胶发泡材料创新企业制定与实施新质生产力战略研究报告
- 智能家居保险方案企业制定与实施新质生产力战略研究报告
- 赛事主题派对行业跨境出海战略研究报告
- 2025保险公司签订劳动合同样本
- 七年级美术教学计划的文化素养培养
- 急诊科病人流量管理措施
- 《禁毒教育班会》课件
- Zippo1992年日版年册集合
- 数据库系统原理教程-清华大学
- 2023文化传媒公司股东协议书
- 三位数除以两位数-有余数-竖式运算300题
- 小学校本课程-13学无止境教学课件设计
- 大单元整体教学在小学英语中的实施策略 论文
- 23J916-1:住宅排气道(一)
- 食堂食材配送服务应急保障方案
- 浇注机械手的结构设计学士学位论文
- 关于诺如病毒致家长的一封信
评论
0/150
提交评论