




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 简单的客户简单的客户 服务器程序设计与实现服务器程序设计与实现 实验目的及要求 实验目的及要求 1 熟悉C编程环境 2 熟悉 Socket 编程原理 掌握简单的套接字编程 实验设备 实验设备 硬件 PC 机 软件 CodeBlocks 实验内容及步骤 实验内容及步骤 什么是 Socket Socket 英文直译为 孔或插座 也称为套接字 用于描述 IP 地址和端口号 是一种进 程间的通信机制 你可以理解为 IP 地址确定了网内的唯一计算机 而端口号则指定了将消息 发送给哪一个应用程序 大多应用程序启动时会主动绑定一个端口 如果不主动绑定 操作系 统自动为其分配一个端口 Socket 的类型 Stream 一种流式 Socket 针对于面向连接的 TCP 服务应用 安全 但效率低 本文 重点 Datagram 数据报式的 Socket 针对于无连接的 UDP 服务应用 不安全 丢失 顺序混 乱 往往在接收端要分析完整性 重排 或要求重发 但效率高 Socket 程序一般应用模式及运行流程 服务器端会启动一个 Socket 开始监听端口 监听客户端的连接信息 我们称之为 Watch Socket 客户端 Socket 连接服务器端的监听 Socket 一旦成功连接 服务器端会立刻创建一个新 的 Socket 负责与客户端进行通信 之后 客户端将不再与 Watch Socket 通信 Watch Socket 继续监听可能会来自其他客户端的连接 上述过程就像是实现了一次三方会谈 服务器端的 Socket 至少会有 2 个 一个是 Watch Socket 每成功接收到一个客户端的连接 便在服务器端创建一个通信 Socket 客户端 Socket 指定要连接的服务器端地址和端口 创建一个 Socket 对象来初始化一个到服务器的 TCP 连接 编写用 TCP 协议实现的 Client 端和 Server 端程序并调试通过 程序分两部分 客户程序和服务器程序 工作过程是 服务器首先启动 它创建套接字之后等待客户的连接 客户启动后创建套接 字 然后和服务器建立连接 建立连接后 客户接收键盘输入 然后将数据发送到服务器 服 务器收到到数据后 将接收到的字符在屏幕上显示出来 或者服务器接收键盘输入 然后将数 据发送到客户机 客户机收到数据后 将接收到的字符在屏幕上显示出来 2 服务器端代码 服务器端代码 include include pragma comment lib ws2 32 define N 20 struct stu char no 20 char name 20 d N int fd char stum int n int i j FILE fp char res fp fopen D student txt r for i 0 i n i fscanf fp s t s fclose fp for j 0 jCompiler settings other options 添加 std c99 Liner Settings Linker settings add C 软件 Codeblocks MinGW lib libws2 32 a 客户端代码 客户端代码 include include include pragma comment lib ws2 32 int main Sleep 2000 WSADATA wsaData WSAStartup MAKEWORD 2 2 SOCKET s socket PF INET SOCK STREAM IPPROTO TCP struct sockaddr in sockaddr sockaddr sin family PF INET sockaddr sin addr S un S addr inet addr 192 168 1 118 sockaddr sin port htons 8000 connect s SOCKADDR char buffer MAXBYTE 0 5 recv s buffer MAXBYTE NULL printf SERVER s buffer char szText 256 while TRUE gets szText szText 255 0 send s szText strlen szText 0 char buffers MAXBYTE 0 recv s buffers MAXBYTE NULL printf SERVER s n buffers closesocket s WSACleanup getchar exit 0 6 系统界面截图 系统界面截图 本地本地 ip 192 168 1 118 服务端开启监听 服务端开启监听 7 客户端建立连接 客户端建立连接 8 服务端的回复 服务端的回复 9 实验总结 实验总结 socket 是用来创建一个 然后返回值是这个 socket 的描述符 很类似与文件描述符 bind 是用 来为这个 socket 绑定 server 的 IP port 地址 当然绑定之前要先对 server 的地址进行初始化 listen 的作用是监听 client 的请求 第二个参数规定了这个刚刚创建的 socket 可以接受几个 client 的服务请求 一旦 accept 了一个 client 的请求 就获得了这个 client 的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 时尚的小鸭嘎嘎嘎课件
- 商业合作市场代理合同
- 早教鸡蛋主题课件
- 早教班育儿知识培训课件
- 纪念9.18课件教学课件
- 早孕期唐氏筛查课件
- 房屋租赁管理合同协议书要求
- 2025年特种设备焊接操作人员考试试卷:焊接设备与材料知识
- 2025年软件设计师考试移动应用开发工具试卷
- 去年福州一检数学试卷
- 慢性疾病管理与健康指导手册
- 2025年高中音乐教师招聘考试测试题及参考答案
- 主持人基础知识培训课件
- 2025年储能运维面试题及答案
- 医院招聘面试题目及参考答案
- 2025年安徽演艺集团有限责任公司招聘20人笔试备考题库及答案详解(名师系列)
- 神经外科护士进修汇报:专业提升与实践应用
- 2025年事业单位考试医学基础知识真题及答案解析(医疗卫生系统)
- 建筑工地基孔肯雅热防控和应急方案
- 车间现场6S管理课件
- 2025年高考山东卷物理试题讲评及备考策略指导(课件)
评论
0/150
提交评论