TCP socket和Unix socket;
时间: 2023-04-06 15:00:35 浏览: 137
TCP socket和Unix socket是两种不同的套接字类型。TCP socket是用于在网络上进行通信的套接字类型,而Unix socket是用于在同一台计算机上的进程之间进行通信的套接字类型。TCP socket使用IP地址和端口号来标识通信的两个端点,而Unix socket使用文件系统路径来标识通信的两个端点。此外,TCP socket是面向连接的,而Unix socket是面向消息的。
相关问题
php 启动的时候通过什么选择TCP socket和Unix socket
PHP 启动时,可以通过修改 php.ini 文件中的配置来选择使用 TCP socket 或 Unix socket。具体来说,可以通过修改以下两个配置项来实现:
1. listen = 127.0.0.1:9000
这个配置项指定了 PHP-FPM 监听的地址和端口,其中 127.0.0.1 表示监听本地地址,9000 表示监听的端口号。如果将这个配置项改为 Unix socket 的形式,可以将其改为:
listen = /var/run/php-fpm/php-fpm.sock
这样 PHP-FPM 就会监听一个 Unix socket 文件,而不是 TCP socket。
2. listen.backlog = -1
这个配置项指定了 PHP-FPM 监听队列的长度,-1 表示使用系统默认值。如果要使用 Unix socket,还需要将这个配置项改为:
listen.backlog = 511
这样可以设置 Unix socket 的监听队列长度为 511。
总之,通过修改 php.ini 文件中的 listen 和 listen.backlog 配置项,可以选择使用 TCP socket 或 Unix socket。
tcp socket编程
在TCP socket编程中,我们使用socket函数来创建一个socket描述符,它唯一标识一个socket。这个函数的参数包括协议域(也称为协议族)、socket类型和协议。常用的协议域有AF_INET(IPv4)、AF_INET6(IPv6)和AF_LOCAL(或称AF_UNIX,Unix域socket)等。常用的socket类型包括SOCK_STREAM(流式套接字,用于可靠的面向连接的通信)和SOCK_DGRAM(数据报套接字,用于不可靠的无连接通信),还有其他类型如SOCK_RAW、SOCK_PACKET和SOCK_SEQPACKET等。协议参数指定具体的协议,例如IPPROTO_TCP(TCP传输协议)、IPPROTO_UDP(UDP传输协议)等。如果协议为0,系统会根据类型选择默认的协议。
在TCP服务器端编程中,我们可以依次调用socket()、bind()、listen()函数来监听指定的socket地址。客户端可以通过socket()函数创建一个socket,然后调用connect()函数向服务器发送一个连接请求。服务器在监听到这个请求后,可以调用accept()函数来接收请求,建立连接。accept()函数返回的是已连接的socket描述符,可以用于与客户端进行数据交互。
通过TCP socket编程,我们可以实现服务器和客户端之间的通信。服务器监听指定的socket地址,等待客户端连接请求。客户端通过socket连接到服务器,并进行数据交互。TCP协议保证了可靠的面向连接的通信,通过三元组(ip地址,协议,端口)唯一标识网络中的进程,实现了多个进程之间的通信。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [TCP/IP协议族通信的socket介绍及编程](https://blog.csdn.net/XUfengge111/article/details/123711225)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
相关推荐
![html](https://img-home.csdnimg.cn/images/20210720083451.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)