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 相关文章推荐
拼音码表的生成
Oct 09 PHP
dede3.1分页文字采集过滤规则详说(图文教程)续二
Apr 03 PHP
PHP 实现explort() 功能的详解
Jun 20 PHP
PHP中对于浮点型的数据需要用不同的方法解决
Mar 11 PHP
ThinkPHP框架设计及扩展详解
Nov 25 PHP
一个简单至极的PHP缓存类代码
Oct 23 PHP
PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
Nov 30 PHP
laravel创建类似ThinPHP中functions.php的全局函数
Nov 26 PHP
老生常谈PHP数组函数array_merge(必看篇)
May 25 PHP
php 二维数组快速排序算法的实现代码
Oct 17 PHP
laravel 错误处理,接口错误返回json代码
Oct 25 PHP
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
Apr 11 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
人族 Terran 魔法与科技
2020/03/14 星际争霸
网站当前的在线人数
2006/10/09 PHP
phpmyadmin中禁止外网使用的方法
2014/11/04 PHP
关于php中的json_encode()和json_decode()函数的一些说明
2016/11/20 PHP
Laravel 加载第三方类库的方法
2018/04/20 PHP
Aster vs Newbee BO5 第二场2.19
2021/03/10 DOTA
基于Jquery+Ajax+Json实现分页显示附效果图
2014/07/30 Javascript
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
jQuery统计指定子元素数量的方法
2015/03/17 Javascript
jquery 中ajax执行的优先级
2015/06/22 Javascript
AngularJs 禁止模板缓存的方法
2017/11/28 Javascript
JS+HTML+CSS实现轮播效果
2017/11/28 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
微信小程序背景音乐开发详解
2019/12/12 Javascript
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
2009/04/09 Python
Python中用altzone()方法处理时区的教程
2015/05/22 Python
Python数据结构与算法之完全树与最小堆实例
2017/12/13 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
Python爬虫beautifulsoup4常用的解析方法总结
2019/02/25 Python
Python GUI编程完整示例
2019/04/04 Python
python 字典 setdefault()和get()方法比较详解
2019/08/07 Python
使用已经得到的keras模型识别自己手写的数字方式
2020/06/29 Python
Python 使用 PyQt5 开发的关机小工具分享
2020/07/16 Python
HTML5+CSS3应用详解
2014/02/24 HTML / CSS
Canvas制作旋转的太极的示例
2018/03/09 HTML / CSS
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
自我鉴定的范文
2013/10/03 职场文书
学雷锋宣传标语
2014/06/25 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
2016年校园重阳节广播稿
2015/12/18 职场文书
Nginx 匹配方式
2022/05/15 Servers
Apache自带的ab压力测试工具的实现
2022/07/23 Servers