PHP 7.2.0 Release Candidate 4 Released

stream_socket_shutdown

(PHP 5 >= 5.2.1, PHP 7)

stream_socket_shutdownЗакрывает полнодуплексное соединение

Описание

bool stream_socket_shutdown ( resource $stream , int $how )

Закрывает (частично или нет) полнодуплексное соединение.

Замечание:

Ассоциированные буферы, или буферы, могут быть закрыты, а могут и нет.

Список параметров

stream

Открытый поток (открытый при помощи функции stream_socket_client(), например)

how

Одна из следующих констант: STREAM_SHUT_RD (отключает последующее получение данных), STREAM_SHUT_WR (отключает последующую передачу данных) или STREAM_SHUT_RDWR (отключает последующие получение и передачу данных).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования stream_socket_shutdown()

<?php

$server 
stream_socket_server('tcp://127.0.0.1:1337');
$client stream_socket_client('tcp://127.0.0.1:1337');

var_dump(fputs($client"привет"));

stream_socket_shutdown($clientSTREAM_SHUT_WR);
var_dump(fputs($client"привет")); // не работает сейчас

?>

Результатом выполнения данного примера будет что-то подобное:

int(5)

Notice: fputs(): send of 6 bytes failed with errno=32 Broken pipe in test.php on line 9
int(0)

Смотрите также

  • fclose() - Закрывает открытый дескриптор файла

add a note add a note

User Contributed Notes 1 note

up
0
jgotti
5 years ago
Just a note to say that if you encounter problem closing some sockets using fclose in a multi client server, you should really  give this one a try.

Spent a full day trying to resolve this issue using stream_socket_shutdown($clientStream,STREAM_SHUT_RDWR);
finally do the trick.
To Top