首頁 後端開發 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");
 
 
}




登入後複製


------解决方案--------------------
用非阻塞模式,具体百度
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
PHP+Socket系列之IO多路復用及實作web伺服器 PHP+Socket系列之IO多路復用及實作web伺服器 Feb 02, 2023 pm 01:43 PM

這篇文章為大家帶來了關於php+socket的相關知識,其中主要介紹了IO多路復用,以及php+socket如何實作web伺服器?有興趣的朋友下面一起來看一下,希望對大家有幫助。

CONNECTION_REFUSED什麼意思 CONNECTION_REFUSED什麼意思 Jul 31, 2023 pm 02:48 PM

CONNECTION_REFUSED是一種網路連線錯誤,通常會在試圖連接到遠端伺服器時出現。當客戶端設備試圖建立與伺服器的網路連線時,如果伺服器拒絕該連線要求,就會傳回一個CONNECTION_REFUSED錯誤。常見的原因包括:伺服器未啟動、伺服器無法接受更多的連線請求、伺服器防火牆阻止了該連線等。

怎麼使用Spring Boot+Vue實現Socket通知推播 怎麼使用Spring Boot+Vue實現Socket通知推播 May 27, 2023 am 08:47 AM

SpringBoot端第一步,引入依賴首先我們需要引入WebSocket所需的依賴,以及處理輸出格式的依賴com.alibabafastjson1.2.73org.springframework.bootspring-boot-starter-websocket第二步,創建WebSocket配置類importorg. springframework.context.annotation.Bean;importorg.springframework.context.annotation.Config

Python的socket與socketserver怎麼使用 Python的socket與socketserver怎麼使用 May 28, 2023 pm 08:10 PM

一、基於TCP協定的socket套接字程式設計1、套接字工作流程先從伺服器端說起。伺服器端先初始化Socket,然後與連接埠綁定(bind),對連接埠進行監聽(listen),呼叫accept阻塞,等待客戶端連線。在這時如果有個客戶端初始化一個Socket,然後連接伺服器(connect),如果連線成功,這時客戶端與伺服器端的連線就建立了。客戶端發送資料請求,伺服器端接收請求並處理請求,然後把回應資料傳送給客戶端,客戶端讀取數據,最後關閉連接,一次互動結束,使用以下Python程式碼實作:importso

connection error怎麼解決 connection error怎麼解決 Nov 07, 2023 am 10:44 AM

解決方法:1、檢查網路連線;2、檢查伺服器狀態;3、清除快取和Cookie;4、檢查防火牆和安全軟體設定;5、嘗試使用其他網路等等。

php socket無法連線怎麼辦 php socket無法連線怎麼辦 Nov 09, 2022 am 10:34 AM

php socket無法連線的解決方法:1、檢查php是否開啟socket擴充;2、開啟php.ini文件,檢查「php_sockets.dll」是否已載入;3、取消「php_sockets.dll」的註解狀態即可。

PHP實作Socket通訊的方法與技巧 PHP實作Socket通訊的方法與技巧 Mar 07, 2024 pm 02:06 PM

PHP是一種常用的開發語言,可以用來開發各種網頁應用程式。除了常見的HTTP請求和回應以外,PHP也支援透過Socket進行網路通信,實現更靈活和高效的資料互動。本文將介紹PHP如何實作Socket通訊的方法與技巧,並附上具體的程式碼範例。什麼是Socket通訊Socket是一種在網路中進行通訊的方法,可以在不同的電腦之間傳輸資料。透過S

PHP Warning: mysqli_connect(): (HY000/2002): Connection refused的解決方法 PHP Warning: mysqli_connect(): (HY000/2002): Connection refused的解決方法 Jun 23, 2023 am 08:54 AM

如果你使用PHP連接MySQL資料庫時遇到了以下錯誤提示:PHPWarning:mysqli_connect():(HY000/2002):Connectionrefused那麼你可以嘗試按照下面的步驟來解決這個問題。確認MySQL服務是否正常運作首先應該檢查MySQL服務是否正常執行,如果服務未運行或啟動失敗,就可能會導致連線被拒絕的錯誤。你可

See all articles