mysql_connect localhost和127.0.0.1的區(qū)別(網絡層闡述)
來源:易賢網 閱讀:948 次 日期:2015-03-30 11:40:06
溫馨提示:易賢網小編為您整理了“mysql_connect localhost和127.0.0.1的區(qū)別(網絡層闡述)”,方便廣大網友查閱!

這篇文章主要介紹了mysql_connect localhost和127.0.0.1的區(qū)別(網絡層闡述),本文從網絡通信層面講解了它們的不同,需要的朋友可以參考下

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的框架上發(fā)展出一種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也是可靠的,消息既不會丟失也不會順序錯亂。

更多信息請查看IT技術專欄

更多信息請查看網絡編程

2026國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網