5.1 主机字节序和网络字节序大端序:一个整数的高位字节存储在内存的低地址处小端序:整数的高位字节存储在内存的高地址处(现代pc大多采用小端序,因此小端序又被称为主机字节序)发送端总是把要发送的数据转为大端字节序后再发送,而接收端知道对方传过来的数据是采用大端字节序,所以接收端可以根据自身采用的字节序决定是否对接收到的数据进行转换。因此,大端序也称为网络字节序。即使在同一台机器的2个进程通信,也需要考虑字节序的问题。htol();htons();ntohl();ntohs();//ip地址转换inet_addr();inet_aton();inet_ntoa();socket(int domain, int type, int protocol);命名 socket:创建socket时,我们给它指定了地址族,但是并未指定使用该地址族中的哪个具体socket地址。将一个socket与socket地址绑定称为给socket命名。在服务器程序中,我们通常要命名socket,因为只有命名后客户端才能知道该如何连接它。客户端则通常不需要命名socket,而是采用匿名方式。命名socket调用的是 bind();监听socket:socket被命名之后,还不能马上接受客户连接,我们需要使用如下系统调用来创建一个监听队列以存放待处理的客户连接。listen(int sockfd, int backlog);backlog 参数提示内核监听队列的最大长度。监听队列的长度如果超过backlog,服务器将不受理新的客户连接,客户端也将收到ECONNREFUSED错误信息。在内部版本 2.2之前的Linux中,backlog参数是指所有处于半连接状态(SYN_RCVD)和完全连接状态(ESTABLISHED)的socket上限。但自内核版本2.2以后,它只表示处于完全连接状态的socket的上限,处于半连接状态的socket上限则由 /proc/sys/net/ipv4/tcp_max_syn_backlog内核参数定义。接收连接:从listen监听队列中接受一个连接:accept();我们把执行过 listen调用,处于listen状态的 socket 称为监听socket,而所有处于 ESTABLISHED 状态的socket则称为连接socket。发起连接:connect();关闭连接:close(); // fd引用计数减1,fd=0 时才真正关闭shutdown();数据读写:recv();send();recvfrom();sendto();recvmsg();sendmsg();sockatmark();getsockname();getpeername();getsockopt();setsockopt();socket 选项:SO_REUSEADDR 选项 : 强制处于 time_wait 状态的连接占用socket地址。SO_RCVBUF 和 SO_SNDBUF : tcp接收缓冲区和发送缓冲区大小SO_RCVLOWAT 和 SO_SNDLOWAT : tcp接收缓冲区和发送缓冲区的低水位标记,他们一般被IO复用系统调用用来判断socket是否可读或可写.SO_LINGER : 控制 close系统调用在关闭 tcp连接时的行为。gethostbyname();gethostbyaddr();getservbyname();getservbport();getaddrinfo();getnameinfo();

5.1 socket 地址 API

5.1.2 通用 socket 地址

5.1.3 专用 socket 地址

5.1.4 IP 地址转换函数

5.2 创建 socket

5.3 命令 socket

5.4 监听 socket

5.5 接受连接

5.6 发起连接

5.7 关闭连接

5.8 数据读写

5.9 带外标记

5.10 地址信息函数

5.11 socket 选项

5.12 网络信息 API

5.Linux 高性能服务器编程 --- Linux 网络编程基础 API相关推荐

  1. Linux 高性能服务器网络编程(一)

    Linux 高性能服务器网络编程 Linux网络编程基础API Socket 地址API 通用socket 地址 专用Sokect地址 IP地址转换函数 创建socket(socket) 命名(绑定) ...

  2. Linux 高性能服务器开发笔记:Reactor 模型定时器 | 网络编程定时器

    本文主要根据游双书本 Linux 高性能服务器开发 学习分析 linux 网络编程常用到的定时器模型,配备详细理解和分析,同时分析了 Linux 内核中定时器的低精度时间轮和高精度定时器实现思路还有 ...

  3. 《Linux高性能服务器编程》——导读

    前 言 为什么要写这本书 目前国内计算机书籍的一个明显弊病就是内容宽泛而空洞.很多书籍长篇大论,恨不得囊括所有最新的技术,但连一个最基本的技术细节也无法解释清楚.有些书籍给读者展现的是网络上随处可见的 ...

  4. 《Linux高性能服务器编程》学习笔记

    <Linux高性能服务器编程>学习笔记 Linux高性能服务器编程 TCP/IP协议族 TCP/IP协议族体系结构以及主要协议 数据链路层 网络层 传输层 应用层 封装 分用 测试网络 A ...

  5. Linux高性能服务器编程——书籍阅读笔记

    目录 前言 正文 第一章 1. 零拷贝函数 2. TCP/IP协议族 3. OSPF 4. ARP协议 5. RARP 6. ICMP协议 7. TCP协议 8. UDP协议 9. 封装 第四章 TC ...

  6. Linux 高性能服务器编程——多线程编程

    问题聚焦:     在简单地介绍线程的基本知识之后,主要讨论三个方面的内容:     1 创建线程和结束线程:     2 读取和设置线程属性:     3 线程同步方式:POSIX信号量,互斥锁和条 ...

  7. 【Todo】【读书笔记】Linux高性能服务器编程

    在读 /Users/baidu/Documents/Data/Interview/服务器-检索端/<Linux高性能服务器编程.pdf> 其实之前读过,要面试了,需要温习. P260 So ...

  8. linux下C语言socket网络编程简例

    转自博文:http://blog.csdn.net/kikilizhm/article/details/7858405 在练习写网络编程时,该例给了我帮助,在写服务器时,我把while逻辑位置想法错了 ...

  9. Linux多线程、多进程、网络编程常见问题

    Linux多进程.多线程.网络编程常见问题 入门 1.GCC的工作流程? 工作流程: 预处理.编译.汇编.链接 具体流程如下: 2.gcc常用的参数选项 3.Makefile介绍 3.1.Makefi ...

  10. linux应用编程和网络编程

    注:本文是对朱老师linux应用编程和网络编程课程的备忘引导性笔记,主要是为了能够在学完后快速回忆起相关内容.本文主要记录了一些关键易忘性知识点并包含少量理解性内容,遵循尽量精简的原则,以尽量少的篇幅 ...

最新文章

  1. 【数据挖掘】数据挖掘算法 组件化思想 示例分析 ( 组件化思想 | Apriori 算法 | K-means 算法 | ID3 算法 )
  2. 邪恶的Java帝国是怎么欺负小函数的?
  3. 10万奖金!探索图像盲降噪新方式,旷视2022 MegCup炼丹大赛等你来战
  4. Form提交前,ajax校验,并阻止提交
  5. ArcGIS 10.2晕渲图+旋转图制作
  6. php 303,HTTP 的重定向301,302,303,307(转)
  7. linux安装mysql5.5.52,Linux系统上安装MySQL 5.5prm
  8. java正则表达式去除空格_去掉字符串前后所有空格的正则表达式
  9. mysql事物超时回滚_查询超时和事务回滚的处理办法
  10. Fiddler 抓包工具
  11. CAD地形图等图案填充在视口中无法正常显示
  12. JS 堆栈事件调用(同步调用、异步调用);消息队列和作业队列
  13. HYSBZ 2565 最长双回文串 (回文树)
  14. 21.炫酷的CSS数字j时钟
  15. php接口链接浏览器打开很快php很慢,php不管curl还是file_get_contents请求接口都很慢,但直接在浏览器里访问就很快,这是说明情况?...
  16. git commit -amend报错 ! [remote rejected] HEAD -> refs/for/master (duplicate request) error: failed to
  17. 全球与中国楼梯升降机租赁市场现状及未来发展趋势
  18. xtu1404 菱形2 距离
  19. Python 发送邮件附件为excel附件名为中文乱码问题
  20. 湘潭大学信息安全课作业答案8

热门文章

  1. WPF 学习笔记(十二)
  2. vue-cli脚手架npm相关文件解读(7)dev-server.js
  3. Centos 配置eth0 提示Device does not seem to be present -- 转载
  4. SqlHelper的编写
  5. Hadoop学习入门(二)——部署关键问题1:OpenSSH 密钥管理(1)
  6. CommandTarget属性
  7. R语言:data.table语句批量生成变量
  8. Rstudio 1.2 新功能介绍
  9. 2018大盘点 | R语言中文社区十大火爆文章
  10. R|数据处理|merge数据详解