当前位置: 首页 > news >正文

律师事务所 网站建设WordPress多城市

律师事务所 网站建设,WordPress多城市,wordpress slider插件下载,买域名自己做网站TCP(即传输控制协议):是一种面向连接的传输层协议,它能提供高可靠性通信(即数 据无误、数据无丢失、数据无失序、数据无重复到达的通信) 适用情况: 1. 适合于对传输质量要求较高,以及传输大量数据 的通信。…

TCP(即传输控制协议):是一种面向连接的传输层协议,它能提供高可靠性通信(即数
据无误、数据无丢失、数据无失序、数据无重复到达的通信)

 适用情况:
1. 适合于对传输质量要求较高,以及传输大量数据
的通信。
2. 在需要可靠数据传输的场合,通常使用TCP协议
3. QQ等即时通讯软件的用户登录账户管理相关
的功能通常采用TCP协议

tcp协议特点:
1. 面向连接   //类似打电话通话之前 ,必须先打通 
2. 可靠传输   //保证数据准确可靠 (tcp协议机制 里面的功能 )
3. 面向字节流程
 

TCP服务器端:首先产生一个socket,用bind绑定socket,再调用listen函数

  int bind(int sockfd, const struct sockaddr *addr,
                socklen_t addrlen);


  
2、bind函数解析

原型:int bind(int sockfd,

struct sockaddr *my_addr, 
             socklen_t addrlen);
功能:如果该函数在服务器端调用,则表示将参数1相关
      的文件描述符文件与参数2 指定的接口地址关联,
      用于从该接口接受数据。

      如果该函数在客户端调用,则表示要将数据从
      参数1所在的描述符中取出并从参数2所在的接口
      设备上发送出去。

        注意:
        如果是客户端,则该函数可以省略,由默认接口发送数据。
参数:
      sockfd 之前通过socket函数创建的文件描述符,套接字id
      my_addr 是物理接口的结构体指针。表示该接口的信息。

      struct sockaddr      通用地址结构 --- ip + 端口 
      {
          u_short sa_family;  地址族
          char sa_data[14];   地址信息
      };
      //本地 socket 
      //网络 ipv4 
      //     ipv6 

      转换成网络地址结构如下:
      struct sockaddr_in    ///网络地址结构
      {
          u_short           sin_family; //地址族
          u_short           sin_port;   //地址端口
          struct in_addr  sin_addr;   //地址IP  //"192.168.1.123"
          char               sin_zero[8]; //占位
      };
     //in_addr_t  === unsigned int 
      struct in_addr
      {
          in_addr_t s_addr;
      }

3.listen函数解析

(1)listen函数的工作原理:

通过函数创建的socket首先会用bind进行绑定,然后通过listen转化为一种特殊的socket,这种socket具体监听的作用,当监听的socket遇到其他客户端发来的通信链接请求时,会产生一个等待连接的队列,随后accep函数将从队列中第一个等待连接请求开始产生一个用于通信的socket,然后通过accept产生的socket完成客户端和服务器端的通信过程

过程图:

(1)listen函数原型:

#include <sys/socket.h>
int listen(int sockfd, int backlog);


函数功能:将套接字文件描述符从主动转为被动文件描述符,然后用于被动监听客户端的连接
函数返回值:成功返回0,失败返回-1, errno被设置


参数:
a. sockfd 表示socket创建的套接字文件描述符


b. backlog 指定队列的容量
这个队列用于记录正在连接但是还没有连接完成的客户端,一般设置队列的容量为2,3即可。队列的最大容量需要小于30

(2)accept函数原型:

#include <sys/socket.h>
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);


函数功能:
被动监听客户端发起的tcp连接请求,三次握手后连接建立成功。客户端connect函数请求发起连接。
连接成功后服务器的tcp协议会记录客端的ip和端口,如果是跨网通信,记录ip的就是客户端所在路由器的公网ip
返回值:
成功:返回一个通信描述符,专门用于与连接成功的客户端进行通信。
失败:返回-1 ,并设置errno


函数参数:
a. sockfd 已经被listen转为了被动描述符的“套接字文件描述符”,专门用于客户端的监听,入股sockfs没有被listen函数转为被动描述符,则accept是无法将其用来监听客户端连接的。
套接字文件描述符默认是阻塞的,即如果没有客户端请求连接的时候,此时accept会阻塞,直到有客户端连接;如果不想套接字文件描述符阻塞,则可以创建套接字 socket函数 时指定type为SOCK_NOBLOCK


b. addrlen表示第二个参数addr的大小,不顾要求给定地址


c. addr: 用于记录发起连接请求的那个客户端的IP端口
建立连接时服务器的TCP协议会自动解析客户端发来的数据包,从中获取客户端的IP和端口号
这里如果服务器应用层需要用到客户端的 IP和端口号,可以给accept指定第二个参数addr,以获取TCP链接时的客户端ip和端口号;如果服务器应用层不需要,则写NULL即可
addr的结构体类型为 struct sockaddr

http://www.yayakq.cn/news/648964/

相关文章:

  • 在招聘网站做销售怎么样怎样用ps做网站的效果图
  • 东阳网站建设有哪些thinkphp5来做网站吗
  • 搭建一个企业网站国外建站主机
  • 西宁市网站建设价格seo的概念是什么
  • 做电力产品的外贸网站买东西最便宜的网站
  • 汕头cms建站模板网络营销环境分析报告
  • 网站开发前端php 后端python计算机网络工程师证书
  • 怎样在微信里做网站wordpress全静态
  • 怎么选择丹徒网站建设国外域名注册做违法网站
  • 做绿植o2o网站怎么样徐州做公司网站多少钱
  • 果洛wap网站建设在线教育
  • 途途外贸企业网站管理系统网络规划设计师教程 下载
  • 重庆网上注册公司网站网页设计课程心得体会500字
  • 景安网络网站建设教程wordpress的多站点网站无法访问
  • 网页设计做一个介绍自己的的网站思行做网站
  • 伊犁州建设局网站网站开发及流行框架
  • 有做阿里网站的吗腾讯邮箱企业邮箱网页版
  • 企业网络营销为什么要选择外包?济南网络优化推广公司哪家好
  • 上传网站程序分类目录检索
  • 河北网站seo策划株洲网红餐厅
  • 成都家居网站建设wordpress文章为啥数据库中找不到
  • 一个空间做多个网站河南省建设劳动学会网站
  • 做网站都要学什么wordpress无法创建目录
  • 喷码机营销型网站设计官网首页
  • 网站国际联网备案做汽配的外贸网站
  • 英文网站设计公司公司网站哪里好
  • 安全中国asp.net网站开发项目实战培训班没有网站可以做百度推广吗
  • 网站制作开发pinterest官网
  • 网站怎么连接微信支付电子商务静态网站建设心得
  • 做中学数学教案有哪些好的网站网站建设捌金手指花总十四