php服务端接收音频数据完整代码
时间: 2023-08-14 20:02:16 浏览: 137
以下是一个简单的PHP代码示例,用于从客户端接收音频数据并将其保存到文件中:
```php
<?php
// 服务器地址和端口号
$host = '127.0.0.1';
$port = 8888;
// 创建套接字对象
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
die("socket_create() failed: " . socket_strerror(socket_last_error()));
}
// 绑定地址和端口号
if (socket_bind($socket, $host, $port) === false) {
die("socket_bind() failed: " . socket_strerror(socket_last_error($socket)));
}
// 监听连接
if (socket_listen($socket, 1) === false) {
die("socket_listen() failed: " . socket_strerror(socket_last_error($socket)));
}
// 等待客户端连接
echo "Waiting for client connection...\n";
$client = socket_accept($socket);
if ($client === false) {
die("socket_accept() failed: " . socket_strerror(socket_last_error($socket)));
}
echo "Client connected.\n";
// 读取客户端发送的数据
$filename = 'audio.wav';
$file = fopen($filename, 'wb');
if ($file === false) {
die("Failed to open file $filename.\n");
}
while ($data = socket_read($client, 1024)) {
fwrite($file, $data);
}
fclose($file);
socket_close($client);
socket_close($socket);
echo "Audio data received and saved.\n";
?>
```
这个代码片段创建了一个TCP服务器,绑定到本地IP地址和端口号。一旦有客户端连接,它将等待客户端发送数据,每次接收的数据块大小为1024字节,并将其写入名为“audio.wav”的本地文件中。一旦客户端完成发送,服务器将关闭连接并关闭文件,并输出一条消息表示音频数据已成功接收并保存。
阅读全文