Blog Details

HTTP 服务器程序编写历程总结
by weswoo

shopify独立站

Planning your online business goals with a specials

Kristin Weswoo

Aug 30, 2023

 accept函数

 
用于从已完成毗邻行列头返回下一个已完成毗邻,若是已完成毗邻行列为空,那么历程就会被壅闭。因此挪用了accept函数之后,历程就会被壅闭,直到有新的请求到来。   第一个参数sockfd是客户端的套接字形貌符,第二个是客户端的套接字地址结构,第三个是套接字地址结构的长度。   若是accept乐成,那么返回值是由内核自动天生的全新形貌符,代表所返回的客户端的TCP毗邻。   对于accept函数,第一个参数称为监听套接字形貌符,返回值称为已毗邻套接字。服务器仅确立监听套接字,它一直存在。已毗邻套接字由服务器历程接受的客户毗邻确立,当服务器完成某个毗邻的响应后,响应的已毗邻套接字就被关闭了。   accept函数返回时,会返回套接字形貌符或失足指示的整数,以及引用参数中的套接字地址和该地址的巨细。若是对返回值不感兴趣,可以把两个引用参数设为空。   accept之后,一个TCP毗邻就确立起来了,接着,服务器就接受客户端的请求信息,然后做出响应。   recv和send函数   划分用于从客户端读守信息和发送信息到客户端。在此不做过多的注释。   套接字地址结构巨细和值-效果参数   可以看到,在bind函数和accept函数内里,都有一个套接字地址结构长度的参数,区别在于一个是值形式,另一个是引用形式。套接字地址结构的转达方式取决于该结构的转达偏向:是从历程到内核,照样从内核到历程。   1、从历程到内核:bind、connect、sendto。   函数将指针和指针所指内容的巨细都传给了内核,于是内核知道到底需要从历程复制若干数据进来。   2、从内核到历程:   accept、recvfrom、getsockname、getperrname。   这四个函数的结构巨细是以只引用的方式转达。   由于当函数被挪用时,结构巨细是一个值,它告诉内核该结构的巨细,这样内核在写该结构时不至于越界;当函数返回时,结构巨细又是一个效果,它告诉内核在该结构中事实存储了若干信息。   HTTP响应报文   发送响应给客户端时,发送的报文要遵照HTTP协议,HTTP的响应报文花样如下:   第一行status-line,状态栏,花样:HTTP版本 状态码 状态码代表文字headers是返回报文的类型,长度等信息,接着是一个空行,然后是响应报文的实体。   一个HTTP响应报文例子:   最后close函数关闭套接字,时刻保持关闭文件形貌符是一个很好的编程习惯。   以上就是我们关于HTTP服务器程序编写的简朴先容,希望对人人有所辅助。  

HTTP 服务器程序编写过程总结(一)

Random Image 608
Random Image 608

Manage your online banking

Morbi lorem proin morbi tempor risus. Nisl lobortis diam id faucibus pretium vitae suspendisse sed accumsan. Sodales morbi tristique elit cursus gravida. Ullamcorper commodo eget pulvinar pretium. Condimentum rhoncus commodo amet nec auctor nibh vel mi blandit.

Neque ultrices nunc condimentum morbi risus tincidunt. Vel arcu lacus non ornare. Porttitor in rhoncus magna augue adipiscing.

  • Manage your time so you’ll get more done in less time
  • Cut expenses without sacrificing quality
  • Attract and retain quality, high-paying customers

开始您的独立站品牌出海

独立站品牌从0到1的步骤:产品开发 - VI定调 - 网站定制 - 运营自动化 - 客户维护

  • 12小时技术团队支持

  • 全方位品牌出海护航