码迷,mamicode.com
首页 > 其他好文 > 详细

网络编程

时间:2018-06-10 17:24:04      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:nbsp   内容   message   访问   描述符   空行   soc   version   输出   

客户端 服务器 是进程

网络 IO设备 数据源与数据接收方

数据 适配器 IO 内存总线 内存

 

协议:一致性

命名

传送数据(打包)

语义抽象,封装接口:套接字

IP:主机间 IP地址

UDP TCP 进程间

 

DNS域名系统

域名:IP地址

localhost:127.0.0.1

 

通信:在连接上发送接收 字节流

 

对进程而言,连接是 点对点,全双工的

套接字:连接的端点

地址:端口

 

客户端:端口由内核自动分配,临时端口

 

服务器:知名端口

 

套接字对:确定一个连接

 

套接字接口:一组函数

+Unix IO

=网络应用

 

linux内核角度

套接字是通信端点,有相应描述符的打开文件

 

connect,bind,accept函数要求参数:指针:指向套接字地址结构

 

socket函数创建套接字描述符

返回的clientfd描述符是部分打开的,不能读写

传参:地址,协议类型?

 

connect函数建立连接

成功后描述符可以读写

 

bind,listen,accept

服务器函数,用于连接客户端

 

客户端:发起请求的主动实体

服务器端:等待请求的被动实体

 

内核默认socket创建主动实体(客户端)

listen指明为被动(服务器)

将套接字从主动套接字转化为监听套接字(一次)

 

accept等待客户端请求

返回已连接套接字(多次)

 

getaddrinfo

getnameinfo

 

open_clientfd

open_listenfd

 

web服务器:HTTP协议

web内容:MINE类型的字节序列

提供内容的方式:

取磁盘文件:静态

运行可执行文件:动态

URL:通用资源定位符

文件名?参数&参数

客户端:前缀访问服务器

服务器:后缀定位文件

 

HTTP请求:

请求行

请求报头,结束标记(空行)

 

请求行:

method URI  vers

URI:URL后缀

 

请求报头:额外信息

header-name:header-data

 

HTTP响应

响应行 

version status-code status-message

响应报头

响应主体

 

CGI:环境变量

客户端参数

 

CHI程序:标准输出重定向到套接字

 

当文件映射到内存,不再需要其描述符了

 

网络编程

标签:nbsp   内容   message   访问   描述符   空行   soc   version   输出   

原文地址:https://www.cnblogs.com/qmcj/p/9163434.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!