Maison développement back-end tutoriel php socket 同时只能有一个客户端连接一个端口并往下面发送数据

socket 同时只能有一个客户端连接一个端口并往下面发送数据

Jun 13, 2016 pm 01:17 PM
buffer connection data quot socket

求助 socket 同时只能有一个客户端连接一个端口并往上面发送数据
同时只能有一个客户端连接一个端口(如8090)并往上面发送数据,当有第二个客户端连接时这个8090端口时 就连接不上了
有的朋友说服务端就accept一次,那如何accept多次啊!下面贴上我的代码

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->$commonProtocol = getprotobyname("tcp");
$socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol);
@socket_bind($socket, '192.168.1.202', 8888);
@socket_listen($socket);
// Initialize the buffer
$buffer = "NO DATA";


while(true)
{
sleep(1);    
 // Accept any connections coming in on this socket

 $connection = @socket_accept($socket);
 printf("Socket connected\r\n");
 // Check to see if there is anything in the buffer
 if($buffer != "")
 {
  printf("Something is in the buffer...sending data...\r\n");
  @socket_write($connection, $buffer . "\r\n");
  printf("Wrote to socket\r\n");
 }
 else
 {
  printf("No Data in the buffer\r\n");
 }
 // Get the input
 while($data = @socket_read($connection, 14, PHP_NORMAL_READ))
 {
     
     if (!empty($data)){
         $buffer = $data;  

 //文件驱动模式 
      /*$f = fopen(dirname(__FILE__).'/file/'.date('YmdHis').'.txt','w');
    fwrite($f,$buffer); 
    fclose($f); */ 
 
   socket_set_nonblock($connection);
   socket_getpeername($connection,&$remoteIP,&$remotePort);
echo $remoteIP."\r\n";
echo $remotePort."\r\n";
 
 
 
 $data=str_split($buffer);
 
 print_r($data);
 
 foreach($data as $v){
     echo dechex(ord($v))."\t";
     }
 echo "\r\n";
 
     }
  


  
 }
 @socket_close($connection);
 printf("Closed the socket\r\n\r\n");
 
 
}




Copier après la connexion


------解决方案--------------------
用非阻塞模式,具体百度
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Multiplexage IO de la série PHP+Socket et implémentation du serveur Web Multiplexage IO de la série PHP+Socket et implémentation du serveur Web Feb 02, 2023 pm 01:43 PM

Cet article vous apporte des connaissances pertinentes sur php+socket, qui présente principalement le multiplexage IO et comment php+socket implémente le serveur Web ? Les amis intéressés peuvent jeter un œil ci-dessous. J'espère que cela sera utile à tout le monde.

Que signifie CONNECTION_REFUSED ? Que signifie CONNECTION_REFUSED ? Jul 31, 2023 pm 02:48 PM

CONNECTION_REFUSED est une erreur de connexion réseau qui se produit généralement lors de la tentative de connexion à un serveur distant. Lorsqu'un appareil client tente d'établir une connexion réseau avec un serveur et que le serveur rejette la demande de connexion, une erreur CONNECTION_REFUSED est renvoyée. Les raisons courantes incluent : le serveur n'est pas démarré, le serveur ne peut pas accepter plus de demandes de connexion, le pare-feu du serveur bloque la connexion, etc.

Comment utiliser le socket et le socketserver de Python Comment utiliser le socket et le socketserver de Python May 28, 2023 pm 08:10 PM

1. Programmation de socket basée sur le protocole TCP 1. Le flux de travail du socket commence par le côté serveur. Le serveur initialise d'abord le Socket, puis se lie au port, écoute le port, appelle accepter pour bloquer et attend que le client se connecte. A ce moment, si un client initialise un Socket puis se connecte au serveur (connect), si la connexion réussit, la connexion entre le client et le serveur est établie. Le client envoie une demande de données, le serveur reçoit la demande et traite la demande, puis envoie les données de réponse au client, le client lit les données et ferme enfin la connexion. Utilisez le code Python suivant pour l'implémenter. : importations

Comment résoudre l'erreur de connexion Comment résoudre l'erreur de connexion Nov 07, 2023 am 10:44 AM

Solution : 1. Vérifiez la connexion réseau ; 2. Vérifiez l'état du serveur ; 3. Effacez le cache et les cookies ; 4. Vérifiez les paramètres du pare-feu et du logiciel de sécurité ; 5. Essayez d'utiliser d'autres réseaux, etc.

Comment utiliser Spring Boot+Vue pour implémenter le push de notification Socket Comment utiliser Spring Boot+Vue pour implémenter le push de notification Socket May 27, 2023 am 08:47 AM

La première étape du côté de SpringBoot consiste à introduire les dépendances. Nous devons d'abord introduire les dépendances requises pour WebSocket, ainsi que les dépendances pour le traitement du format de sortie com.alibabafastjson1.2.73org.springframework.bootspring-boot-starter-websocket. La deuxième étape consiste à créer la classe de configuration WebSocket importorg springframework.context.annotation.Bean;importorg.springframework.context.annotation.Config.

Que faire si le socket php ne peut pas se connecter Que faire si le socket php ne peut pas se connecter Nov 09, 2022 am 10:34 AM

Solution au problème selon lequel le socket php ne peut pas être connecté : 1. Vérifiez si l'extension de socket est activée dans php ; 2. Ouvrez le fichier php.ini et vérifiez si « php_sockets.dll » est chargé ; 3. Décommentez « php_sockets.dll » ; ".

Avertissement PHP : mysqli_connect() : (HY000/2002) : Solution de connexion refusée Avertissement PHP : mysqli_connect() : (HY000/2002) : Solution de connexion refusée Jun 23, 2023 am 08:54 AM

Si vous rencontrez le message d'erreur suivant lorsque vous utilisez PHP pour vous connecter à une base de données MySQL : PHPWarning:mysqli_connect():(HY000/2002):Connectionrefused, vous pouvez essayer de résoudre ce problème en suivant les étapes ci-dessous. Pour confirmer si le service MySQL fonctionne normalement, vous devez d'abord vérifier si le service MySQL fonctionne normalement. Si le service ne fonctionne pas ou ne démarre pas, cela peut provoquer une erreur de refus de connexion. peux-tu

Recherche sur la technologie de transfert de fichiers en temps réel utilisant PHP et Socket Recherche sur la technologie de transfert de fichiers en temps réel utilisant PHP et Socket Jun 28, 2023 am 09:11 AM

Avec le développement d'Internet, le transfert de fichiers est devenu un élément indispensable du travail et du divertissement quotidien des gens. Cependant, les méthodes traditionnelles de transfert de fichiers telles que les pièces jointes aux e-mails ou les sites Web de partage de fichiers présentent certaines limites et ne peuvent pas répondre aux besoins de temps réel et de sécurité. Par conséquent, utiliser la technologie PHP et Socket pour réaliser un transfert de fichiers en temps réel est devenu une nouvelle solution. Cet article présentera les principes techniques, les avantages et les scénarios d'application de l'utilisation de la technologie PHP et Socket pour réaliser un transfert de fichiers en temps réel, et démontrera la méthode de mise en œuvre de cette technologie à travers des cas spécifiques. technologie

See all articles