Cet article présente principalement les problèmes de connexion Socket et de délai d'expiration des données de lecture et d'écriture en PHP, et analyse les paramètres associés et les compétences d'utilisation de la connexion Socket. Les amis dans le besoin peuvent s'y référer
Cet article décrit le Socket. en PHP avec des exemples Problèmes de connexion et de lecture et d'écriture des données. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Bien que PHP ait un paramètre de délai d'attente pour se connecter au socket pour la méthode fsockopen(), il n'y a pas de paramètre de délai d'attente pour lire et écrire des données après une connexion réussie comme en C. Peu importe, PHP fournit une série de méthodes de flux pour éviter l'expiration du délai
stream_set_blocking( $fp , false )
Réglez le flux de données en mode blocage pour empêcher les données de en cours de lecture avant la fin. Quittez
Si le mode est faux, le descripteur de socket donné passera en mode non-bloc, s'il est vrai, il passera en mode bloc. Cet effet est similaire à fgets(). lecture à partir du socket. En mode non-bloc, fgets() reviendra immédiatement, tandis qu'en mode bloc, il attendra que les données répondent aux exigences
stream_set_timeout( $fp , 10 )
stream_get_meta_data( $fp )
Array ( [stream_type] => tcp_socket [mode] => r+ [unread_bytes] => 0 [seekable] => [timed_out] => [blocked] => 1 [eof] => )
.
Code :$fp = @fsockopen( $ip , $port, $errNo , $errstr, 30 ); if( !$fp ) { return false; } else { stream_set_timeout( $fp , 3 ) ; //发送数据 fwrite( $fp , $packet ) ; $status = stream_get_meta_data( $fp ) ; //发送数据超时 if( $status['timed_out'] ) { echo "Write time out" ; fclose( $fp ); return false; } //读取数据 $buf = fread( $fp , 16 ) ; $status = stream_get_meta_data( $fp ) ; //读取数据超时 if( $status['timed_out'] ) { echo "Read time out" ; fclose( $fp ); return false; } }
PHP
SCOKET envoie des fichiers volumineux et reçoit le tutoriel JAVA_PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!