mysql_connect localhost和127.0.0.1的区别(网络层阐述)


Posted in PHP onMarch 26, 2015

connects.php

mysql_connect('127.0.0.1','root','zzzizzz1');

mysql_connect('localhost','root','zzzizzz1');

使用strace获取系统调用:

strace php connects.php 2>&1 | grep connect
#127.0.0.1 -> internet socket

connect(3, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)

#localhost -> unix domain socket

connect(7, {sa_family=AF_FILE, path="/var/run/mysqld/mysqld.sock"}, 110) = 0

Socket原本是为网络通讯设计的,但后来在Socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。
虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:
不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程。
这是因为,IPC机制本质上是可靠的通讯,而网络协议是为不可靠的通讯设计的。
UNIX Domain Socket也提供面向流和面向数据包两种API接口,类似于TCP和UDP,但是面向消息(UDP)的UNIX Domain Socket也是可靠的,消息既不会丢失也不会顺序错乱。

PHP 相关文章推荐
实时抓取YAHOO股票报价的代码
Oct 09 PHP
php设计模式之观察者模式的应用详解
May 21 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
Jun 24 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
Jul 22 PHP
php中解析带中文字符的url函数分享
Jan 20 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
Jun 17 PHP
PHP实现的随机IP函数【国内IP段】
Jul 20 PHP
PHP从数组中删除元素的四种方法实例
May 12 PHP
PHP实现正则表达式分组捕获操作示例
Feb 03 PHP
PHP基于SPL实现的迭代器模式示例
Apr 22 PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 PHP
PHP实现的文件浏览器功能简单示例
Sep 12 PHP
php实现RSA加密类实例
Mar 26 #PHP
PHP中实现crontab代码分享
Mar 26 #PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
Mar 26 #PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
Mar 25 #PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
Mar 25 #PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 #PHP
php编写的一个E-mail验证类
Mar 25 #PHP
You might like
使用apache模块rewrite_module (转)
2007/02/14 PHP
PHP 缓存实现代码及详细注释
2010/05/16 PHP
php数组中包含中文的排序方法
2014/06/03 PHP
php使用递归函数实现数字累加的方法
2015/03/16 PHP
php 使用curl模拟登录人人(校内)网的简单实例
2016/06/06 PHP
PHP简单获取多个checkbox值的方法
2016/06/13 PHP
Iframe 自动适应页面的高度示例代码
2014/02/26 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
jquery实现翻动fadeIn显示的方法
2015/03/05 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
2015/03/11 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
React.js中常用的ES6写法总结(推荐)
2017/05/09 Javascript
详解angular 中的自定义指令之详解API
2017/06/20 Javascript
使用vue制作FullPage页面滚动效果
2017/08/21 Javascript
详解Vue 动态组件与全局事件绑定总结
2018/11/11 Javascript
laydate时间日历插件使用方法详解
2018/11/14 Javascript
vue子组件改变父组件传递的prop值通过sync实现数据双向绑定(DEMO)
2020/02/01 Javascript
jQuery实现简单QQ聊天框
2020/08/27 jQuery
[48:35]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 TNC vs Optic
2018/04/03 DOTA
pandas DataFrame 根据多列的值做判断,生成新的列值实例
2018/05/18 Python
python实现换位加密算法的示例
2018/10/14 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
Python 写了个新型冠状病毒疫情传播模拟程序
2020/02/14 Python
Python导入数值型Excel数据并生成矩阵操作
2020/06/09 Python
python爬虫泛滥的解决方法详解
2020/11/25 Python
如何通过python检查文件是否被占用
2020/12/18 Python
GafasWorld西班牙:购买太阳镜、眼镜和隐形眼镜
2019/09/08 全球购物
智能钱包:Ekster
2019/11/21 全球购物
开展党的群众路线教育实践活动方案
2014/02/05 职场文书
日化店促销方案
2014/03/26 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
学校政风行风整改方案
2014/10/25 职场文书
企业廉洁教育心得体会
2016/01/20 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python
Nginx进程管理和重载原理详解
2021/04/22 Servers