Getting Started with PHP Socket Programming
Let us start with a simple example---a TCP service that receives an input string, processes and returns this string to the client. Here is the corresponding code:
php Code:
<? // 设置一些基本的变量 $host="192.168.1.99"; $port=1234; // 设置超时时间 set_time_limit(0); // 创建一个Socket $socket=socket_create(AF_INET,SOCK_STREAM,0) or die("Could not create socket\n"); //绑定Socket到端口 $result=socket_bind($socket,$host,$port) or die("Could not bind to socket\n"); // 开始监听链接 $result=socket_listen($socket,3) or die("Could not set up socket listener\n"); // accept incoming connections // 另一个Socket来处理通信 $spawn=socket_accept($socket) or die("Could not accept incoming connection\n"); // 获得客户端的输入 $input=socket_read($spawn,1024) or die("Could not read input\n"); // 清空输入字符串 $input=trim($input); //处理客户端输入并返回结果 $output=strrev($input) ."\n"; socket_write($spawn,$output,strlen($output)) or die("Could not write output\n"); // 关闭sockets socket_close($spawn); socket_close($socket); ?>
The following are each step Detailed instructions:
1. The first step is to create two variables to save the IP address and port of the server where the Socket is running. You can set it to your own server and port (this port can be a number between 1 and 65535 ), provided that this port is not in use.
<? // 设置两个变量 $host="192.168.1.99"; $port=1234; ?>
2. You can use the set_time_out() function on the server side to ensure that PHP will not time out while waiting for the client to connect.
PHP code:
<? // 超时时间 set_time_limit(0); ?>
3. Based on the previous ones, now it’s time to create a Socket using the socket_creat() function---this function returns a Socket handle, which will be used in all subsequent functions.
PHP code:
<? // 创建Socket $socket=socket_create(AF_INET,SOCK_STREAM,0) or die("Could not create socket\n"); ?>
First parameter" AF_INET" is used to specify the domain name;
The second parameter "SOCK_STREM" tells the function what type of Socket will be created (in this case, TCP type)
So, if you want to create a UDP Socket, you can use the following Code:
PHP Code:
<? // 创建 socket $socket=socket_create(AF_INET,SOCK_DGRAM,0) or die("Could not create socket\n"); ?>
4. Once a Socket handle is created, the next step is to specify or bind it to the specified address and port. This can be done through the socket_bind() function.
PHP code:
<? // 绑定 socket to 指定地址和端口 $result=socket_bind($socket,$host,$port) or die("Could not bind to socket\n"); ?>
5. After the Socket is created and bound to a port, you can start listening for external connections. PHP allows you to start a listening through the socket_listen() function, and you can specify a number. (In this case the second parameter: 3)
PHP code:
<? // 开始监听连接 $result=socket_listen($socket,3) or die("Could not set up socket listener\n"); ?>
6. By now, your server is basically doing nothing but waiting for a connection request from the client. Once a client When the connection is received, the socket_assept() function comes into play. It receives the connection request and calls another sub-Socket to handle the information between the client and the server.
PHP code:
<? //接受请求链接 // 调用子socket 处理信息 $spawn=socket_accept($socket) or die("Could not accept incoming connection\n"); ?>
This sub-socket is now It can be used for subsequent client-server communication.
7. When a connection is established, the server will wait for the client to send some input information. This information can be obtained by the socket_read() function, and It is assigned to the $input variable of PHP.
PHP code:
<? // 读取客户端输入 $input=socket_read($spawn,1024) or die("Could not read input\n"); ?>
The second parameter of socker_read is used to specify the number of bytes to be read, and you can use it to limit the size of data obtained from the client.
Note: The socket_read function will keep reading the shell client data until it encounters n, t or

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
