




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机网络实验 实验一WindowsSocket编程 华中科技大学电信学院2015 WindowsSocket编程 实验目的Socket编程常用API实验软件实验内容 2 实验目的 通过编程了解Client Server结构的网络通信模型掌握Socket机制的工作原理掌握基于Client Server结构的WindowsSocketTCP UDP程序设计方法 3 Client Server结构 在TCP IP网络环境下 不同主机上的两个应用程序通信普遍采用客户端 服务器模型 client serverarchitecture C S Client在需要服务时向server提出申请Server等待client提出请求并予以相应Server始终运行 监听网络接口收到client请求启动服务进程响应客户 同时继续监听服务窗口 保证后续的client也能及时得到服务 4 背景知识 WindowsSocket是什么 WindowsSockets是MicrosoftWindows的网络程序设计接口Socket于1981年在BSD4 1UNIX中提出客户端 服务器模型 5 80年代初 美国国防部高级研究计划局 ARPA 给UCBerkeley提供了资金 让他们在UNIX操作系统下实现TCP IP协议 在这个项目中 研究人员为TCP IP网络通信开发了一个API 应用程序接口 这个API称为Socket接口 套接字 今天Socket接口是TCP IP网络最为通用的API 也是在Internet上进行应用开发最为通用的API 90年代初 由Microsoft联合其他几家公司共同制定了一套Windows下的网络编程接口 即WindowsSocket规范 它是BerkeleySocket的重要扩充 主要是增加了一些异步函数 并增加了符合Windows消息驱动特性的网络事件异步选择机制 WinSock规范是一套开放的 支持多种协议的Windows下的网络编程接口 从1991年的1 0版到1995年的2 0 8版 经过不断完善 已成为Windows网络编程的事实上的标准 Socket套接字 目标 学习如何建立客户端 服务器应用程序 使用套接字进行通信套接字 socket 应用进程之间的接口 实现端到端的传输协议 6 Socket是应用层与TCP IP协议栈通信的中间软件抽象层 WinSockDLL WinSock与操作系统的关系 7 应用程序1 应用程序2 网络编程接口 如WinSockAPI 网络通信协议 如TCP IP协议 操作系统 如Windows 物理通信介质 动态链接库 16位版 WINSOCK DLL32位版 WSOCK32 DLL TCP套接字编程 服务器做好准备服务器进程必须首先运行服务器必须先创建socket等待处理客户端的连接请求客户端与服务器的联系创建客户端本地的TCPsocket指明服务器进程的IP地址和端口号当客户端创建socket后 客户端的TCPsocket与服务器TCPsocket建立连接 8 服务器收到客户端连接请求后 创建新的socket用来与客户端通信允许服务器与多个客户端通信源端口号用来识别客户端 TCP协议提供了客户端和服务器之间可靠的 按次序的字节流传输 TCP套接字编程 如同中国移动的10086服务调用socket 建立一个套接口 移动建立好一个电话总机 bind 将该接口和本地IP地址和Port绑定 设定总机号为10086 listen 让套接口做好侦听准备 随时准备接听电话 客户在套接口建立起来之后 便可调用connect 连接服务器指定的Port 用户可拨打10086要求服务 服务器调用accept 来接收客户的连接请求 一旦有电话就接起 服务器收到请求后 建立新的socket来对此连接服务 原来的socket回到监听等待状态 总机接电话后转某分机服务 本身继续等待新的电话 连接建立后 send 和recv 来发送和接收数据 客户与客服对话 数据传送结束 调用closesocket 关闭套接口 结束请挂机 9 常用API API ApplicationProgrammingInterface 应用程序接口DLL装载WinSock服务由动态链接库WinSockDLL提供 它完成WinSock的初始化任务 协商WinSock的版本支持 并分配必要的资源 在使用WinSockAPI之前 必须调用WSAStartup函数对其进行初始化 intWSAStartup WORDv LPWSADATA WD DLL卸载当不需WinSockDLL的服务时 释放DLL所使用的资源 需调用WSACleanup函数终止对WinSock库的使用intWSACleanup 10 常用API 创建套接字 socket 绑定本地地址 bind 侦听连接 listen 建立套接字连接 accept connect 面向连接的数据传输 send recv 关闭套接字 closesocket 11 常用API SocketAPI类别 可支持任意的底层协议族PF INET 用于互联网编程PF UNIX 用于Unix管道编程PF PACKET 直接访问网络接口 i e 绕过TCP IP协议栈 两种基本socketAPI分别支持两种传输服务 SOCK STREAM 可靠的 字节流服务 TCP SOCK DGRAM 非可靠的数据报服务 UDP 应用案例客户端从键盘读取一行字符 数据 并将该数据发送到服务器 服务器接收数据后并显示在屏幕上 12 示例 C客户端 TCP include include include include include defineSERVER PORT5432 defineMAX LINE256intmain intargc char argv WSADATAWSAData intWSAreturn structhostent hp structsockaddr insin char host charbuf MAX LINE ints intlen 13 Socket编程库文件 示例 C客户端 TCP if argc 2 host argv 1 else fprintf stderr usage simplex talkhost n exit 1 WSAreturn WSAStartup 0 x101 14 将远程主机的名称转换成IP地址 参数初始化 程序参数处理 WinSock的初始化 示例 C客户端 TCP activeopen if s socket PF INET SOCK STREAM 0 0 perror simplex talk socket exit 1 if connect s structsockaddr 15 创建客户端socket 从屏幕读取字符串 连接服务器 示例 C服务器 TCP include include include include defineSERVER PORT5432 defineMAX PENDING5 defineMAX LINE256intmain WSADATAWSAData intWSAreturn serveraddress structsockaddr insin structsockaddr inremote charbuf MAX LINE intlen ints new s WSAreturn WSAStartup 0 x101 16 Socket编程库文件 WinSock的初始化 示例 C服务器 TCP buildaddressdatastructure memset char 17 服务socket等待客户端连接 创建服务客户端的Socket 并读取信息 在端口5432创建欢迎socket 示例 C服务器 TCP printf receivedaconnectionfrom s n inet ntoa remote sin addr while len recv new s buf sizeof buf 0 printf received 2dchars len fputs buf stdout close new s WSACleanup return1 18 服务器将信息显示在屏幕上 while循环结束 等待另外的客户端连接 实验环境 VC 6 0CodeBlockshttp www codeblocks org 开源的 跨平台的C C 集成开发环境使用了wxWidgets的界面库需加载MinGW编译器 19 如何用CodeBlocks进行C语言编程 创建一个新project 20 如何用CodeBlocks进行C语言编程 选择Consoleapplication 21 如何用CodeBlocks进行C语言编程 选择GNUGCCCompiler为编译器 22 如何用CodeBlocks进行C语言编程 在main c中编写程序 23 Buildandrun 连接socket库 在settings compiler linkersettings下导入相应lib库CodeBlocks MinGW liblibwsock32 alibws2 32 a 24 实验内容 运行simplex talk例程 理解代码并观察现象修改simplex talk 编制duplex talk程序 支持client和server的双向
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 墨汁分散工艺考核试卷及答案
- (2025)中小学教师资格证考试教育学心理学试题库及参考答案
- 速冻食品热交换效率工艺考核试卷及答案
- 县级公务员面试题及答案
- 9.4 静电的防止与利用 集体备课教学设计-2023-2024学年高一下学期物理人教版(2019)必修第三册
- 第三节 可再生资源的利用与保护-以土地资源为例教学设计-2025-2026学年高中地理选修6 环境保护湘教版
- 两种主流《小石潭记》教学范式的比较研究
- 项目投标文件规范体系及编制要点研究
- 2025至2030国内硅锰合金行业市场深度研究及发展前景投资可行性分析报告
- 2025至2030全球及中国混响室行业市场深度研究及发展前景投资可行性分析报告
- 【艾瑞咨询】2024年中国健康管理行业研究报告494mb
- 2025java中高级面试题及答案
- 偷盗自愿赔偿协议书
- 民航飞行员招飞心理测试题及答案
- 《物业管理条例》教学课件
- 篮球课件介绍
- 2024艺考乐理试题及答案
- 资产回收合同协议模板
- 基层司法所规范化建设
- 城市低空安全监管平台解决方案
- 超市安全知识培训内容
评论
0/150
提交评论