在有关ngx.socket.tcp()(Link)的Lua Nginx模块文档中,它说:
创建并返回一个TCP或面向流的Unix域套接字对象(也称为“ cosocket”对象的一种)
此TCP套接字可用于连接到远程主机,但是在有关unix域套接字(Link)的Wiki中:
Unix域套接字或IPC套接字(进程间通信套接字)是用于在相同主机操作系统
上执行的进程之间交换数据的数据通信端点。
这使我提出一些问题:
答案 0 :(得分:0)
- 此TCP套接字是另一种Unix域套接字吗?这个TCP套接字到底是什么?
TCP和unix域套接字都是流套接字。您可以使用ngx.socket.tcp()
API创建两种类型的套接字。操作系统套接字的类型将由connect方法定义,有两种不同的语法:
如果您使用tcpsock:connect(host, port, options_table?)
语法进行连接,则该套接字将为TCP套接字。
如果您使用tcpsock:connect("unix:/path/to/unix-domain.socket", options_table?)
语法进行连接,则该套接字将是Unix域套接字。显然,您不能使用unix域套接字进行网络通信。
- 文档中的cosocket是什么?我无法使用Google找到它
Cosocket是OpenResty生态系统的术语。如果使用ngx.socket.tcp()
API创建对象-您将创建一个cosocket对象。
- TCP / IP模型的传输层中也使用了TCP协议,这个API是否允许绕过应用程序层直接在传输层中编程?
完全正确。