没有合适的资源?快使用搜索试试~ 我知道了~
1. 创建 Socket 对象用于监听 2. 使用 bind 方法对 Socket 对象进行端口绑定 3. 使用 listen 方法执行监听 4. Accept
资源详情
资源评论
资源推荐
实 验 五 使用 TCP 的远程桌面
5.1 实验目的
TCP 网络程序包括客户端与服务端程序,通信双方实现数据传输的基础上还要根据数据内
容互相协作,程序执行逻辑相比非网络程序调试更为复杂,工作线程还需与界面线程实现并发
与同步控制。远程桌面项目在 TCP 通信流程基础上实现自定义数据包,是一种网络应用层协
议实现。
5.2 TCP 通信模型
5.2.1 TCP 协议介绍
TCP(Transmission Control Protocol) 传输控制协议 TCP 是一种面向连接的、可靠的、基
于字节流的运输层(Transport layer)通信协议,提供全双工通信。TCP 在传输性能方面的要
求是以复杂的算法为代价的,TCP 把数据流分割成适当长度的报文段,TCP 将数据包给定序
号,序号也保证了传送到接收端实体的包的按序接收,然后接收端实体对已成功收到的字节发
回一个相应的确认 (ACK);如果发送端实体在合理的往返时延 (RTT) 内未收到确认,那么对
应的数据(假设丢失了)将会被重传以此保证不发生丢包现象。TCP 数据包格式比较复杂,它
采用一个校验和函数来检验数据是否有错误,在发送和接收时都要计算校验和,网络包不易被
伪造具有一定的安全性。TCP 协议通过三个报文段完成连接的建立,这个过程称为三次握手
(three-way handshake),而终止一个连接要经过四次握手,这是由 TCP 的半关闭 (half-close)
特性决定的,有关 TCP 算法的原理介绍,读者可参考计算机网络教材。
Windows 的驱动程序实现 TCP 协议,系统提供给用户的是套接字接口函数,TCP 的三次
握手或数据包编号确认等过程无需用户直接控制,用户按流程调用套接字接口函数实现数据的
传输。TCP 通信是一种客户端/服务器非对等模式,在程序中服务端的流程主要包括下面几步:
1. 创建 Socket 对象用于监听;
2. 使用 bind 方法对 Socket 对象进行端口绑定;
3. 使用 listen 方法执行监听;
4. Accepte 方法接收一个连接请求,并创建一个新 Socket 对象用于数据传输;
5. 新创建的 Socket 对象执行数据读写 read/write 实现数据传输;
6. 通信完成后使用 close 方法关闭与客户端通信的 Socket 对象;
7. 监听的 socket 对象使用 close 方法关闭;
客户端流程较简单,步骤如下:
1. 创建用于通信的 Socket 对象;
1
实验五 2
2. 使用 Socket 对象 Connect 方法连接服务器端的监听端口;
3. 使用 Socket 对象读写 read/write 方法进行数据;
4. 通信完成后使用 Socket 对象的 close 方法关闭;
TCP 的通信模式中设计服务端与客户端一对多的模式,即允许多个客户端连接到同一个服
务端,服务端同时与多个客户端通信。客户端线程创建和管理 Socket 对象流程比较直观,执行
Connect 命令连接服务端指定端口,成功后即可与服务器端进行数据读写操作。实际连接的客
户端数目是不确定的,服务端通过监听的方法管理多个客户端的连接与断开。服务端创建一个
Socket 对象并在指定端口执行监听任务,监听状态的 Socket 对象用于接收客户端的连接请求,
服务端线程收到客户端连接请求时系统通信模块会创建一个新的 Socket 对象,负责网络监听的
Socket 对象在通信过程中保持不变以便继续接收新的客户连接。
新创建的 Socket 对象分配到新的网络端口,它负责与客户端配对执行通信任务,服务端采
用新建线程管理新 So cket 对象以完成数据通信功能,而 WinSock 中的 IOCP(完成端口) 方式
采用线程池方式支持大量网络连接,能达到极高的网络通信效率。客户端与服务端的线程对象
结合 TCP 通信流程模式可由图5-1进行描绘,图中描述的服务端新建线程管理新 Socket 对象,
它实现的是连接数不多的 TCP 通信。
2
实验五 3
图 5-1 TCP 通信流程示意图
3
剩余12页未读,继续阅读
臭人鹏
- 粉丝: 25
- 资源: 328
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- vscode-1.64.1.tar源码文件
- vscode-1.64.0.tar源码文件
- vscode-1.52.0.tar源码文件
- Music-Player +PlayerActivity+ rockplayer+ SeeJoPlayer 播放器JAVA源码
- vscode-1.46.0.tar源码文件
- 最近很火植物大战僵尸杂交版2.08苹果+安卓+PC+防闪退工具V2+修改工具+高清工具+通关存档整合包更新
- 超级好用的截图工具PixPin,可录制Gif图
- Screenshot_2024-05-21-17-06-42-64_2332cb9b27b851b548ba47a91682926c.jpg
- 毕业设计参考 - 基于树莓派、OpenCV及Python的人脸识别
- node-v18.20.2-linux-arm64
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0