它来自以下答案:
当主机是“ localhost”时,
https://stackoverflow.com/questions/2482411/is-this-pdo-bug-fixed-now/2482424#2482424

“,MySQL Unix客户端使用Unix套接字,AKA Unix域套接字,而不是TCP / IP套接字进行连接,因此TCP端口无关紧要。


#1 楼

UNIX套接字,即AKA Unix域套接字,是一种进程间通信机制,允许在同一台计算机上运行的进程之间进行双向数据交换。
IP套接字(尤其是TCP / IP套接字)是一种允许进程之间进行通信的机制。网络。在某些情况下,可以使用TCP / IP套接字与运行在同一台计算机上的进程通信(通过使用回送接口)。
UNIX域套接字知道它们在同一系统上执行,因此可以避免一些检查和操作(例如路由);这使它们比IP插座更快,更轻。因此,如果您打算与同一主机上的进程进行通信,那是比IP套接字更好的选择。仅在数据包筛选器级别。

评论


也许可以添加UNIX域套接字受文件系统权限的约束,而TCP套接字则不受文件系统许可的约束。结果,与TCP套接字相比,管理哪些用户可以访问UNIX域套接字要容易得多。

–尼尔斯·托德曼
2015年2月12日在15:59

@ pQd,Dude,您可以将其称为Unix IPC而不是Unix套接字吗?

–起搏器
17年2月19日在22:25

@Pacerier Unix套接字只是实现unix IPC(在进程间共享内存)的一种方法,因此调用unix套接字unix IPC是不正确的。

– fyquah95
17年5月28日在17:53



TCP套接字也由Unix处理吗? TCP套接字是TCP协议规范的一部分,或者任何协议都可以使用IP套接字?

– Federico
17年1月1日14:48在

@Federico我发布了一个答案,尝试解决您的查询,如果您需要更深入的知识,请发布一个新问题。

– Peter Green
18/09/13在17:31

#2 楼

您可以使用以下命令列出自己的计算机本地unix套接字:
Windows:
netstat -a -p --unix

MacOS:[jbmeerkat注释]
netstat -a -f unix

玩得开心!

评论


Windows上不存在Unix套接字。但是netstat可以在Windows上运行。

–马克·汤姆林
2012年7月17日在14:29

@apache,在Windows中类似的东西叫做“命名管道”。

–专家
2012年11月1日下午6:34

在Linux上也存在命名管道。

– Sahil Singh
16年8月4日在23:23

@ expert,Windows中的命名管道等于Unix中的命名管道。 Unix中的IPC套接字在Windows中没有等效项

–起搏器
17-2-19在22:29



Windows 10支持Unix套接字。有一些限制,但可以使用:blogs.msdn.microsoft.com/commandline/2017/12/19/…

–泰森
18年7月30日在2:45

#3 楼


Unix套接字和TCP / IP套接字有什么区别?


TCP / IP套接字用于通过TCP / IP网络进行通信。通过本地IP,本地端口,远程IP和远程端口的组合来标识已连接的TCP套接字。侦听的TCP套接字由本地端口以及可能的本地IP标识。至少在Linux TCP / IP套接字上,AIUI始终会导致TCP / IP数据包的生成和解码,即使客户端和服务器在同一台计算机上也是如此。

unix域套接字(有时缩写为另一方面,“ Unix套接字”只能在一台计算机上运行。侦听套接字位于文件系统层次结构中,并且可以通过文件系统权限控制对套接字的访问。

此外,在Unix套接字上接受连接的进程可以确定所连接进程的用户ID。这样可以避免进行身份验证步骤。无需为数据库服务器生成密码并将密码的副本包含在webapp的代码中,您只需告诉数据库服务器运行Webapp的用户有权访问数据库中的相应用户帐户即可。



TCP套接字也由Unix处理吗?


当然


TCP套接字也是TCP的一部分协议规范


Internet协议规范仅倾向于关注线路上发生的事情,TCP规范包含Socket的定义,但该定义与术语的使用方式不同。 “套接字API”。

我们知道,“ socket API”是BSD引入的,后来又被复制到各处,并作为posix标准的一部分包含在内。 TCP和UDP套接字的基本内容在不同平台上趋于相同,但更高级的内容以及与OS其他部分进行交互的内容也有所不同,例如,在类Unix系统上,套接字由文件句柄标识并且可以由文件API读取/写入,在Windows上不是这种情况。

套接字API的某些扩展已在rfcs中记录,但那些RFC只是“信息性的”。


还是任何协议都可以使用IP套接字?


当应用程序使用“套接字”函数显式创建套接字(套接字也由accept函数创建)时,它将传递三个参数“域”,“类型”和“协议” ”。在这三个参数之间,可以使用它们来选择许多不同类型的套接字。


域选择使用的协议/地址族,例如用于ipv4的AF_INET,用于ipv6的AF_INET6,用于unix文件系统路径的AF_Unix等。
类型选择通信语义,主要是数据报和流,但是还有其他更专门的类型。使用,如果将其设置为0,则将使用域和类型组合的默认协议。


评论


“侦听套接字位于文件系统层次结构中,可以通过文件系统权限来控制对它们的访问。”这是否意味着可以访问同一文件系统的两台服务器可以通过套接字进行通信?

–user5359531
19年3月21日在21:18

不幸的是,AIUI没有。 superuser.com/questions/352263/…

– Peter Green
19年3月21日在21:29