• 3.5


    1.什么是C/S架构?
    Client 客户端 Server 服务端
    互联网中处处是C/S架构
       如12306网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种)
       腾讯作为服务端为你提供视频,你得下个腾讯视频客户端才能看它的视频)
    C/S架构与socket的关系:
    我们学习socket就是为了完成C/S架构的开发
    2.互联网协议是什么?分别介绍五层协议中每一层的功能?
    互联网协议:计算机界的英语
    OSI七层:
    应用层
    表示层
    会话层
    传输层
    网络层
    数据链路层
    物理层
    TCP/IP四层/五层:
    应用层 应用层 :软件 qq 暴风
    传输层 传输层 :建立端口到端口的通信 0-65535 0-1023为系统占用端口 tcp ucp
    网络层 网络层 :ip+mac 能找到全世界唯一的计算机 ip:找到哪一个局域网 mac:找到那一台机器
    数据链路层 接口层 :定义电信号的分组方式
    物理层 :发送01010101...电信号
    3.基于tcp协议通信,为何建立链接需要三次握手,而断开链接却需要四次挥手
    三次握手:client请求,server同意请求,client同意
    四次挥手:client请求,server同意,server请求,client同意 因为:server有可能还有数据要发送
    4.为何基于tcp协议的通信比基于udp协议的通信更可靠?
    tcp:可靠 对方给了确认收到信息,才发下一个,如果没收到确认信息就重发
    udp:不可靠 一直发数据,不需要对方回应
    5.‍流式协议指的是什么协议,数据报协议指的是什么协议?
    流式协议:TCP协议,可靠传输
    数据报协议: UDP协议,不可传输
    6.什么是socket?简述基于tcp协议的套接字通信流程
    Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。 socket == 片面说: ip + 端口
    服务端:socket(),bind(),listen(),accept(),recv(),send(),close()
    客户端:socket(),connect(),send(),recv(),close()
    7.什么是粘包? socket 中造成粘包的原因是什么? 哪些情况会发生粘包现象?
    粘包:数据粘在一起,主要因为:接收方不知道消息之间的界限,不知道一次性提取多少字节的数据造成的
    数据量比较小,时间间隔比较短,就合并成了一个包,这是底层的一个优化算法(Nagle算法)
    8.基于socket开发一个聊天程序,实现两端互相发送和接收消息 -- 4.加上链接循环
    9.基于tcp socket,开发简单的远程命令执行程序,允许用户执行命令,并返回结果 -- 5.模拟ssh远程执行命令
    10.基于tcp协议编写简单FTP程序,实现上传、下载文件功能,并解决粘包问题 --11.文件传输 面向对象版本
    11.基于udp协议编写程序,实现功能 -- 14.UDP执行指令查看服务端的时间,设置时间同步
    执行指定的命令,让客户端可以查看服务端的时间
    执行指定的命令,让客户端可以与服务的的时间同步

    程序参考:http://www.cnblogs.com/alice-bj/p/8610363.html


  • 相关阅读:
    block 相关清单
    在Objective-C 中使用字符生成NSArray、NSDictionary、NSNumber
    NSURLSession 相关清单
    iOS 相关博客清单
    sqlite 一条记录判断一个字段是否like另一个字段
    iphone程序适配ipad可以用下面的宏进行尺寸改写
    NSURLSession使用说明及后台工作流程分析
    iOS 6 新的快捷初始化写法
    ios 应用发布渠道大全
    iOS-获取当前时间的年、月、日、时、分、秒
  • 原文地址:https://www.cnblogs.com/alice-bj/p/8619992.html
Copyright © 2020-2023  润新知