zoukankan      html  css  js  c++  java
  • http和socket

     

    要弄明白 http socket 首先要熟悉网络七层

    HTTP 协议:超文本传输协议,对应于应用层,用于如何封装数据.

    TCP/UDP 协议:传输控制协议,对应于传输层,主要解决数据在网络中的传输。

    IP 协议:对应于网络层,同样解决数据在网络中的传输

    Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议

    HTTP 协议

    http 为短连接:客户端发送请求都需要服务器端回送响应.请求结束后,主动释放链接,因此为短连接。

    HTTP连接使用的是"请求-响应"方式,不仅在请求时建立连接,而且客户端向服务器端请求后,服务器才返回数据。

    Socket 连接

    要想明白 Socket,必须要理解 TCP 连接。

    TCP 三次握手:

    第一次握手:客户端发送syn(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
    第二次握手:服务器收到syn包,必须确认客户的SYNack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
    第三次握手:客户端收到服务器的SYNACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

    握手过程中并不传输数据,在握手后服务器与客户端才开始传输数据,理想状态下,TCP 连接一旦建立,在通讯双方中的任何一方主动断开连接之前 TCP 连接会一直保持下去。

    创建 Socket 连接的时候,可以指定传输层协议,可以是 TCP 或者 UDP,当用 TCP 连接,该Socket就是个TCP连接,反之。

    Socket适用场景:网络游戏,银行交互,支付。

    http适用场景:公司OA服务,互联网服务。

  • 相关阅读:
    伙伴宿舍管理系统(源码下载)
    清空SQL数据库日志
    indexOf(String.indexOf 方法)
    C#实现QQ助手(登录QQ,发消息,查任意QQ资料)附源码下载
    C#cookie自动获取工具发布
    winform中怎么动态修改窗体的大小
    IIS Rewrite 下载与配置
    HTML代码转JS|C#字符串工具(附源代码)
    FTPHelper-FTP帮助类,常用操作方法
    c# 怎么动态修改webservice的地址和端口 动态修改配置文
  • 原文地址:https://www.cnblogs.com/zxking/p/9749531.html
Copyright © 2011-2022 走看看