【问题标题】:Is there a difference between TCP and UNIX socket?TCP和UNIX套接字有区别吗?
【发布时间】:2018-02-19 11:01:54
【问题描述】:

对于 TCP 套接字,许多客户端可以连接它并发送数据并关闭。 但是对于 UNIX 套接字,如果客户端关闭套接字,服务器端也会关闭。是吗?

但在我看来,TCP也有STOP状态....

这是我的 python UNIX 套接字代码:

sock_file = "%s_%d.sock" % (sock_name, port)
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
sock.bind(sock_file)
sock.listen(1)

【问题讨论】:

  • 你试图比较无与伦比的事物。首先阅读套接字12TCP

标签: python sockets unix tcp


【解决方案1】:

取自 ServerFault (What's the difference between Unix socket and TCP/IP socket):

UNIX 套接字是一种进程间通信机制,允许在同一台机器上运行的进程之间进行双向数据交换。

IP 套接字(尤其是 TCP/IP 套接字)是一种允许进程之间通过网络进行通信的机制。在某些情况下,您可以使用 TCP/IP 套接字与运行在同一台计算机上的进程通信(通过使用环回接口)。

UNIX 域套接字知道它们在同一个系统上执行,因此它们可以避免一些检查和操作(如路由);这使得它们比 IP 套接字更快更轻。因此,如果您计划与同一主机上的进程通信,这是比 IP 套接字更好的选择。

UNIX 域套接字受文件系统权限的约束,而 TCP 套接字只能在数据包过滤级别进行控制。

【讨论】:

    猜你喜欢
    • 2017-07-30
    • 2016-08-15
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 2011-07-25
    • 1970-01-01
    相关资源
    最近更新 更多