读书笔记:《深入理解计算机系统》 之 第十一章 网络编程

第一次作业:简述网络编程

第二次作业:简述套接字相关内容

 

现实生活中,我们基本都已经离不开网络应用。

每个网络应用都是基于客户端-服务器模型的。简单的来说就是客户端向服务器发起请求,然后服务器向客户端返回相应内容。

对此,有一道非常经典的面试题,当你在浏览器输入一个网址时,发生了什么?

因特网就是最成功的互联网络的实现。每个因特网主机都运行实现TCP/IP协议的软件,因特网的客户端和服务器混合使用套接字接口和Unix I/O函数进行通信,通常将套接字函数实现为系统调用,这些系统调用会陷入内核,并调用各种内核模式的TCP/IP函数。

最初的因特网协议使用32位IP地址,称为IPv4,后来又出现了了IPv6,最近就有一个新闻,全世界的Ipv4已经被分配完了。

 

套接字接口是一组函数,它们和Unix I/O函数结合起来,用以创建网络应用。

从Linux内核的角度来看,一个套接字就是通信的一个端点。从Linux程序的角度来看,套接字就是一个有相应描述符的打开文件。

客户端和服务器使用socket函数来创建一个套接字描述符。

客户端通过调用connect函数来建立和服务器的连接。

剩下的套接字函数,bind,listen和accept,服务器用它们来和客户端建立连接。

除此之外,Linux还提供了一些强大函数(getaddrinfo和getnameinfo)实现二进制套接字地址结构和主机名,主机地址,服务名和端口号的字符串之间的相互转化。当和套接字接口一起使用时,这些函数能使我们编写独立于任何特定版本的IP协议的网路程序。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值