Home> php教程> PHP开发> body text

Detailed explanation of socket communication mechanism examples in php

高洛峰
Release: 2016-12-22 09:51:15
Original
1037 people have browsed it

The examples in this article describe the socket communication mechanism and usage in php. Share it with everyone for your reference. The specific analysis is as follows:

1. What is a socket?

What is a socket? The so-called socket is usually also called a "socket", which is used to describe the IP address and port, and is the handle of a communication chain. Applications usually make requests to the network or respond to network requests through "sockets". To put it bluntly, it is a communication mechanism. It is similar to the telephone customer service departments of banks, telecommunications and other departments. When you call, a person will be assigned to answer your questions. The customer service department is equivalent to the server side of the socket, and your side is equivalent to the client. Before the call ends with you, if someone is on It is impossible to talk to the person you are talking to because you are communicating with him. Of course, the telephone switchboard of the customer service department will not be duplicated.

I will give an example below to explain how socket works. If you are developing based on the application layer, you do not necessarily need to understand the principle, but it is better to know. There are php apis about sockets on the Internet. Just put it down and use it.

2. Socket server server.php

Copy after login

3. Socket client client.php

Copy after login

4. A picture of the communication mechanism (automatically closing the socket regardless of the waiting time)

A brief explanation, before explaining I want to talk about why you need to use php commands to execute the server and client. For the client, you use fsockopen. If you access it on the browser, the connection will time out. Why is this? Because when you create a socket, it will constantly monitor whether the client wants to connect.

The establishment of socket communication requires two socket channels, one created by the server and one created by the client.

Line 1, the server creates a socket channel, puts the information in the cache, and waits for the client to connect

Line 2, the client creates a socket channel and connects to the server to obtain the server-side information for communication, which will be transmitted The information is sent to channel

Line 3. The server gets the information from the client and tells the client that I have received the information. Send the information to be transmitted to the channel

Line 4, and the client obtains the confirmation information from the server

At this point, the communication is completely established. After the data transmission is completed, the server will disconnect the socket communication. The specific operation is as follows.

1 Run the socket server

[root@blackghost zhangy]# /usr/local/php/bin/php -a /home/zhangy/www/test2/server.php interactive mode enabled
Copy after login

What kind of work has this done

a Listen to a 10008 port

[zhangy@blackghost ~]$ netstat -an |grep listen |grep 10008 tcp 0 0 127.0.0.1:10008 0.0.0.0:* listen [zhangy@blackghost ~]$
Copy after login

b Send the information to the cache

$buffer = "connect";
Copy after login

Look at the code above

2 Run the socket client

[root@blackghost zhangy]# /usr/local/php/bin/php -a /home/zhangy/www/test2/client.php interactive mode enabled buffer data: connect writing to socket sent to server: some data response from server was:information received
Copy after login

3 Back to the server side

[root@blackghost zhangy]# /usr/local/php/bin/php -a /home/zhangy/www/test2/server.php interactive mode enabled socket connected send data to client wrote to socket buffer: some data closed the socket
Copy after login

I hope this article will be helpful to everyone’s PHP programming design.

For more detailed explanations of socket communication mechanism examples in PHP and related articles, please pay attention to the PHP Chinese website!


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template
    About us Disclaimer Sitemap
    php.cn:Public welfare online PHP training,Help PHP learners grow quickly!