首页 > 系统相关 >Linux网络编程

Linux网络编程

时间:2023-10-04 18:12:36浏览次数:27  
标签:文件 请求 编程 网络 发送 描述符 参数 Linux 目录

  1. http请求主要是客户端B/S都是http协议,一种数据包格式 服务器端做出响应

     get请求不用提交数据,post需要

  2. 请求行分为三部分

     请求方式 get是静态资源请求,这个刚代表资源目录,随便那个目录,而不是服务器的根目录 第三个是协议版本,现在一般都是1.1版本 看不见的?R/n一定要注意

  3. get请求 携带动态数据的方式

     不会出现在数据部分,而是求晴天的第二部分,请求目录结束之后,问号开始,取地址符分割的键值对,请求栏也有缓冲区,大概是8k超过8K就后面的没了

  4. 怎么知道请求行解析完了嗎 /r/n 怎么知道请求头键值对 冒号加空格  空行的作用
  5. 四种传输方式

     

     

     文件描述分割用封号,描述完有\r\n 分界线号码是随机生成 分界线之间是数据块

  6. 服务器响应格式

     空行怎么加\r\n 格式是必须有的 utf-8支持中文用封号隔开 200状态码 成功! 其他可加可不加

  7. 状态码

     503 一会再来试一试 500比较宽泛,我也不知道 301 302 临时 永久重定向 映射  403不搭理你

  8. 边缘非阻塞  检测到只通知一次 那么就需要把所有的消息都检测出来

     处理get请求 一个buffer 缓冲区的写事件对程序员没有用 因为一检测都是缓冲区可写

  9. buffe不够大也没关系 后面的数据咱不要了 

     只有请求行最有用 为了避免数据覆盖,需要一个临时的复制进去,后面

  10. 如何判断是读取失败还是数据读完了  因为是非阻塞的都是返回-1 如何判断

     Linux系统函数会提供一个全局变量errornumber,通过error值确定  erron.h

  11. 字符串匹配

     

     百分号就是占位符 后面词的占位符

  12. 处理请求行代码

     比较不区分带小写的在头文件 strings里

  13. 修改工作路径

     

     

     chdir 将服务器工作路径切换到请求的路径,以操作这里面的资源

  14. 如何将目录中的文件发送给客户端  很简单首先要发文件名其次是文件内容所以需要文件描述符

     文件传输是TCP 两段建立连接后就可以流失发送,不在乎是不是一整块 一个字节还是一个G

  15. 如何打开文件  open函数指出文件名和打开方式

     采用一种严苛的条件 断言 头文件

     read读数据 返回一个块 当块等于0就是读完了 休眠非常重要 人为的拥塞控制  有一个用户区到内核去的复制

  16. Linux系统文件发送

     sendfile四个参数  发送的用于通信的文件描述符  2.文件系统内部打开的文件描述符  3 偏移量一般是0从头开始读 4读多少个字节一般是·读完

     lseek求偏移量  第三个参数是指针null lseek的第二个参数是打开的位置 seekend的指针位置+0

  17. 新注释方式更好

     

  18. 发送前三部分响应头

     C语言拼接字符串是sprintf 

  19. 如何知道文件类型

     一个机智的小涵书,从右往左找

  20. 如何返回错误信息·

     后面的不用执行

  21. 如何返回文件内容

     stat系统函数获取文件属性 索引节点

  22. 学习资源

     

  23. 发送客户端目录

     拼接字符串 ST里的长度以免文件大小过长都是长整形

  24. 如何添加目录跳转

     加转义字符 如果是目录就跳转到子目录,所以必须加斜杠,如果是文件就不需要

  25. 为何会出不显示的bug sendfile号称勿复制

     

     lsee 会把文件描述符的指针也在执行过程中移动,现在就是移动到末尾了,解决办法就是移动到头就行了。st.size  根据sendfile返回的值判断什么错误 如果是-1就是发生错误,如果是0说明0字节

  26. 为什么还要有发送错误  通信文件描述符和监听发送文件描述符异步

     cfd非阻塞 一直在循环里面读取发送 这时候fd还没有在内核里面的缓冲区写进去

     offset 偏移量可以自己修改

  27. 如何将字符转换过来  自己下载或者写一下具体的函数 原理在于整形和字符型的类型转换

     

     

  28. 多线程 监听线程只有一个 连接建立可以多线程 通信可以多线程

     pthreadcreate创建有四个参数 分别是传出参数 就是创建的子线程的线程ID ,第二个参数null就可以,第三个创建的任务回调函数地址,第四个 函数参数只有一个就是结构体指针,封装好参数,线程ID也可以封装进里面,然后创建的时候传出就可以了

标签:文件,请求,编程,网络,发送,描述符,参数,Linux,目录
From: https://www.cnblogs.com/lvshy/p/17742532.html

相关文章

  • 43.227.223.x常见的网络攻击之一cc攻击&防护手段!
    HTTPFlood俗称CC攻击(ChallengeCollapsar)是DDOS(分布式拒绝服务)的一种,相比其它的DDoS攻击CC似乎更有技术含量一些。这种攻击你见不到虚假IP,见不到特别大的异常流量,但造成服务器无法进行正常连接,一条ADSL的普通用户足以挂掉一台高性能的Web服务器。由此可见其危害性,称其为“Web杀......
  • 认识网络配置文件
    一:概述在对系统进行网络配置的时候,需要使用到网络配置文件。一般情况下我们使用Linux中提供的网络配置工具来对网络进行配置和维护。二:Linux中的网络管理工具在之前Linux中可能会使用各种各样的脚本来管理网络,经过不断的发展,Linux大牛开发了很多的网络管理工具。CentOS和Ubuntu中有......
  • linux 中设置用户间针对单一目录的权限
     001、创建两个测试用户[root@pc1home]#ls[root@pc1home]#useradduser01##创建两个测试用户[root@pc1home]#useradduser02[root@pc1home]#echotmppasswd|passwd--stdinuser01Changingpasswordforuseruser01.passwd:allauthentication......
  • VC++ MFC 编程--CMap的使用
    本文翻译自: CMapHow-to-CodeProject介绍像我这样的程序员,在CMap之前学习了STL::map,总是认为CMap很难使用,并且总是尝试以STL::map的方式使用CMap。在本文中,我将解释CMap,以及如何将它用于您自己的自定义类。在本文的最后,我将展示一个如何正确使用CMap与CString*的例子(注意,我......
  • Linux相关学习(vmware安装)
    Linux系统一切皆文件(模板机:1.配置IP地址;2.关闭防火墙、selinux安全加载机制)一、配置IP地址cd/etc/sysconfig/network-scripts/lsifcfg-eth0文件解析(网卡配置文件):if:interface接口cfg:config配置eth:ethernet以太网0:第一块网卡viifcfg-eth0按“i”转换为输入模......
  • 深入浅出-七层网络模型
    网络基本概念OSI模型OSI模型(OpenSystemInterconnectionmodel)是一个由国际标准化组织......
  • 安装Linux操作系统,学习Linux基础
    安装Linux操作系统安装Linux操作系统实践学习“别出心裁的Linux命令学习法”1、ls命令2、man命令3、cheat命令实践学习“Linux基础入门(新版)”......
  • 编程新手?跟着这个教程,用Python画出小猪佩奇
    小猪佩奇是许多小朋友们的心头好,它的形象可爱、颜色鲜艳。你知道吗,只需要Python中的一个简单模块,我们就可以自己绘制出这个可爱的形象!本文将教你如何使用Python的turtle模块,一步步画出小猪佩奇。1.准备工作:了解turtle模块Python的turtle模块是一个非常有趣的模块,它提供了基础......
  • 网络基础知识
    ==============================掩码位变长24掩码位/22借2位1变4  主机1024-2        /21借3位1变8  主机2048-2        /20 借4位1变16 主机4096-2十进制掩码    掩码长度   主机数目   0    ......
  • Linux - hsp 第十章~第十一章
    第十章组管理和权限管理1)ls-ahl查看文件的所有者2)chown用户名文件名 修改文件所有者3)groupadd组名创建组4)chgrp组名文件名更改文件所在组5)usermod-g新组名用户名 更改用户所......