




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验二使用socket实现C S程序 上一个实验已经知道了C S的编写框架如下 一 基于UDP 面向无连接 的socket编程服务器端 接收端 程序 1 加载套接字库2 创建套接字 socket 3 将套接字绑定到一个本地地址和端口上 bind 4 等待接收数据 recvfrom 5 关闭套接字 closesocket 客户端 发送端 程序1 加载套接字库2 创建套接字 socket 3 向服务器发送数据 sendto 4 关闭套接字 closesocket 二 基于TCP 面向连接 的Socket编程服务器端程序 1 加载套接字库2 创建套接字 socket 3 将套接字绑定到一个本地地址和端口上 bind 4 将套接字设为监听模式 准备接收客户请求 listen 5 等待客户请求的到来 当请求带来后 接受连接请求 返回一个新的对应于此次连接的套接字 accept 6 用返回的套接字和客户端进行通信 send recv 7 返回 等待另一个客户请求8 关闭套接字 closesocket 客户端程序 1 加载套接字库2 创建套接字 socket 3 向服务器发送连接请求 connect 4 和服务器端进行通信 send receive 5 关闭套接字 closesocket 因为UDP的程序较简单 所以这次实验的目标是实现一个服务器端和客户端交互聊天的程序 下面列出一些会用到的函数 一些上个实验中的函数就没有列出 1 intbind SOCKETs conststructsockaddrFAR name intnamelen 第一个参数指定要绑定的套接字 第二个参数指定该套接字的本地地址信息 是指向sockaddr结构的指针变量 由于该地址结构是为了所有的地址家族准备使用的 这个结构可能 通常会 随使用的网络协议不同而不同 所以 要用第三个参数指定该地址结构的长度 sockaddr定义如下 structsockaddr u shortsa family charsa data 14 第一个字段指定该地址家族 在这里必须设为AF INET sa data仅仅是表示要求一块内存分配区 起到占位的作用 该区域中指定与协议相关的具体地址信息 由于实际要求的只是内存区 所以对于不同的协议家族 用不同的结构来替换sockaddr 在TCP IP中 我们可以用SOCKADDR IN结构来代替sockaddr 以方便我们填写地址信息 2 intlisten SOCKETs intbacklog 将套接字设置为监听模式 其中第二个参数设置等待请求连接的最大的值 即如果设置为n 则前n个请求会放置在系统的请求连接队列中 应用程序会依次对这些请求进行服务 但第n 1个连接请求则会被拒绝 3 SOCKETaccept SOCKETs conststructsockaddrFAR addr intFAR addrlen 从客户端接收请求 并创建连接 如果连接成功 则会返回一个当前成功建立连接的套接字 该套接字不是上面创建的监听套接字 而是仅仅适用于当前的一个请求连接 如果建立连接失败 则返回值是INVALID SOCKET 并且可以适用WSAGetLastError 函数得到相关的失败信息 具体的errorcode具体意义见MSDN中accept函数的最后部分的介绍 4 intsend SOCKETs constcharFAR buf intlen intflags 第一个参数指定发送端套接字描述符 第二个参数指明一个存放应用程序要发送数据的缓冲区 想要发送的数据 第三个参数指明实际要发送的数据的字节数 第四个参数一般置0 5 intrecv SOCKETs charFAR buf intlen intflags 第一个参数指定接收端套接字描述符 第二个参数指明一个缓冲区 该缓冲区用来存放recv函数接收到的数据 第三个参数指明buf的长度 第四个参数一般置0 6 intPASCALFARconnect SOCKETs conststructsockaddrFAR name intnamelen s 标识一个未连接套接字的描述字 name 欲
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阿里云招聘笔试题库2025
- 2025关于外企租赁合同范本
- 冲突发生课件
- 2025购销合同协议范本
- 2025农业用地租赁合同示范文本
- 冲压车间生产安全培训课件
- 2025二手车买卖中介合同
- 企业安全培训化工课件
- 2025动物饲料批量采购合同书
- 电大监考老师管理办法
- 【专家共识】导管相关感染防控最佳护理实践
- 《焊接结构生产》课件-第二单元 焊接应力与变形
- 智能行政管理课件
- 大学生心理健康十六讲(第3版) 课件全套 第1讲 心理健康知多少-大学生心理健康导论-第16讲 珍爱生命-危机干预与幸福人生
- 农业机械化应用培训课件
- DB62∕T 4727-2023 建筑消防设施维护保养技术规程
- 数智化保障核燃料供应-2025 中核建中核燃料元件有限公司
- 美容师职业形象课件
- 《沉积岩与沉积相》地质资源勘查工程专业全套教学课件
- 糖尿病护理常规及健康教育
- QGDW10364-2020单相智能电能表技术规范
评论
0/150
提交评论