Heim Backend-Entwicklung PHP-Tutorial phpsocket客户端以及服务器例证

phpsocket客户端以及服务器例证

Jun 13, 2016 pm 12:00 PM
client function quot socket this

phpsocket客户端以及服务器例子

一个菜鸟朋友,突然问了我这个问题...现在稍稍有点时间,就写了一个简单的例子给他,顺便贴上来

服务器端:

<?php /** * @author 邹颢	[email&#160;protected] */class SocketServer{	private $_port=&#39;9000&#39;;	private $_address=&#39;127.0.0.1&#39;;	private $_client_socket_list=array();	public function __set($name,$val){		$this->$name=$val;	}	private function _showError($error){		exit($error);	}	/**	 * 开始进行socket服务器端监听端口	 */	public function start(){		// 创建端口		if (($sock = socket_create ( AF_INET, SOCK_STREAM, SOL_TCP )) === false) {			$this->_showError("socket_create() failed :reason:" . socket_strerror ( socket_last_error () ));		}		// 绑定		if (socket_bind ( $sock, $this->_address, $this->_port ) === false) {			$this->_showError("socket_bind() failed :reason:" . socket_strerror ( socket_last_error ( $sock ) ));		}		// 监听		if (socket_listen ( $sock, 5 ) === false) {			$this->_showError("socket_bind() failed :reason:" . socket_strerror ( socket_last_error ( $sock ) ) );		}		do {			//当有一个客户端连接的时候			if ($client_socket=socket_accept ( $sock )) {				$count = count ( $this->_client_socket_list ) + 1;				//把新来的用户加入 客户端数组里				$this->_client_socket_list[]=$client_socket;				echo "new connection:\r\n";//服务器端输出当前正在连接的客户端数量				echo "current connection:{$count}\r\n";				//接受客户端传过来的字符串				$msg=$this->read($client_socket);				echo "client:{$msg}\r\n";				//服务器向客户端传值				$my_msg="I am fine,think you\r\n";				$this->send($client_socket,$my_msg);			}			/**			 * 这段代码给你参考,用来判断是否有客户端主动失去连接			else{				foreach ( $this->_client_socket_list as $socket ) {					$len = socket_recv ($socket, $buffer, 2048, 0 ); // 接受一下客户端信息,如果为0代表断开连接					if ($len start();//开始监听
Nach dem Login kopieren
Nach dem Login kopieren

客户端:

<?php /** * @author 邹颢	[email&#160;protected] */class SocketServer{	private $_port=&#39;9000&#39;;	private $_address=&#39;127.0.0.1&#39;;	private $_client_socket_list=array();	public function __set($name,$val){		$this->$name=$val;	}	private function _showError($error){		exit($error);	}	/**	 * 开始进行socket服务器端监听端口	 */	public function start(){		// 创建端口		if (($sock = socket_create ( AF_INET, SOCK_STREAM, SOL_TCP )) === false) {			$this->_showError("socket_create() failed :reason:" . socket_strerror ( socket_last_error () ));		}		// 绑定		if (socket_bind ( $sock, $this->_address, $this->_port ) === false) {			$this->_showError("socket_bind() failed :reason:" . socket_strerror ( socket_last_error ( $sock ) ));		}		// 监听		if (socket_listen ( $sock, 5 ) === false) {			$this->_showError("socket_bind() failed :reason:" . socket_strerror ( socket_last_error ( $sock ) ) );		}		do {			//当有一个客户端连接的时候			if ($client_socket=socket_accept ( $sock )) {				$count = count ( $this->_client_socket_list ) + 1;				//把新来的用户加入 客户端数组里				$this->_client_socket_list[]=$client_socket;				echo "new connection:\r\n";//服务器端输出当前正在连接的客户端数量				echo "current connection:{$count}\r\n";				//接受客户端传过来的字符串				$msg=$this->read($client_socket);				echo "client:{$msg}\r\n";				//服务器向客户端传值				$my_msg="I am fine,think you\r\n";				$this->send($client_socket,$my_msg);			}			/**			 * 这段代码给你参考,用来判断是否有客户端主动失去连接			else{				foreach ( $this->_client_socket_list as $socket ) {					$len = socket_recv ($socket, $buffer, 2048, 0 ); // 接受一下客户端信息,如果为0代表断开连接					if ($len start();//开始监听
Nach dem Login kopieren
Nach dem Login kopieren

注意事项:服务器端请用CLI模式运行,cgi模式会超时,新手常喜欢犯的错误.什么是CLI模式,简单的说就是用命令行去执行,而不要用游览器打开,否则会超时的
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was bedeutet Funktion? Was bedeutet Funktion? Aug 04, 2023 am 10:33 AM

Funktion bedeutet Funktion. Es handelt sich um einen wiederverwendbaren Codeblock mit bestimmten Funktionen. Er kann Eingabeparameter akzeptieren, bestimmte Operationen ausführen und Ergebnisse zurückgeben. Code, um die Wiederverwendbarkeit und Wartbarkeit des Codes zu verbessern.

So verwenden Sie Pythons Socket und Socketserver So verwenden Sie Pythons Socket und Socketserver May 28, 2023 pm 08:10 PM

1. Socket-Programmierung basierend auf dem TCP-Protokoll 1. Der Socket-Workflow beginnt auf der Serverseite. Der Server initialisiert zuerst den Socket, bindet dann an den Port, lauscht auf den Port, ruft „Accept“ zum „Blockieren“ auf und wartet darauf, dass der Client eine Verbindung herstellt. Wenn zu diesem Zeitpunkt ein Client einen Socket initialisiert und dann eine Verbindung zum Server herstellt (verbinden), wird bei erfolgreicher Verbindung die Verbindung zwischen dem Client und dem Server hergestellt. Der Client sendet eine Datenanforderung, der Server empfängt die Anforderung und verarbeitet sie, sendet dann die Antwortdaten an den Client, der Client liest die Daten und schließt schließlich die Verbindung. Verwenden Sie den folgenden Python-Code, um sie zu implementieren : importso

IO-Multiplexing der PHP+Socket-Serie und Implementierung eines Webservers IO-Multiplexing der PHP+Socket-Serie und Implementierung eines Webservers Feb 02, 2023 pm 01:43 PM

Dieser Artikel vermittelt Ihnen relevantes Wissen über PHP + Socket. Er stellt hauptsächlich das E / A-Multiplexing vor und erklärt, wie PHP + Socket den Webserver implementiert. Freunde, die interessiert sind, können einen Blick darauf werfen. Ich hoffe, es wird für alle hilfreich sein.

So verwenden Sie Spring Boot+Vue, um den Socket-Benachrichtigungs-Push zu implementieren So verwenden Sie Spring Boot+Vue, um den Socket-Benachrichtigungs-Push zu implementieren May 27, 2023 am 08:47 AM

Der erste Schritt auf der SpringBoot-Seite besteht darin, Abhängigkeiten einzuführen. Zuerst müssen wir die für WebSocket erforderlichen Abhängigkeiten sowie die Abhängigkeiten für die Verarbeitung des Ausgabeformats com.alibabafastjson1.2.73org.springframework.bootspring-boot-starter-websocket einführen. Der zweite Schritt besteht darin, die WebSocket-Konfigurationsklasse importorg springframework.context.annotation.Bean;importorg.springframework.context.annotation.Config zu erstellen

Was tun, wenn der PHP-Socket keine Verbindung herstellen kann? Was tun, wenn der PHP-Socket keine Verbindung herstellen kann? Nov 09, 2022 am 10:34 AM

Lösung für das Problem, dass der PHP-Socket nicht verbunden werden kann: 1. Überprüfen Sie, ob die Socket-Erweiterung in PHP aktiviert ist. 2. Öffnen Sie die Datei php.ini und prüfen Sie, ob „php_sockets.dll“ geladen ist. 3. Kommentieren Sie „php_sockets.dll“ aus ".

Die PHP+Socket-Serie realisiert die Datenübertragung zwischen Client und Server Die PHP+Socket-Serie realisiert die Datenübertragung zwischen Client und Server Feb 02, 2023 am 11:35 AM

Dieser Artikel vermittelt Ihnen relevantes Wissen über PHP+Socket. Er stellt hauptsächlich vor, was Socket ist. Wie realisiert PHP+Socket die Client-Server-Datenübertragung? Freunde, die interessiert sind, können einen Blick darauf werfen. Ich hoffe, es wird für alle hilfreich sein.

Forschung zur Echtzeit-Dateiübertragungstechnologie mit PHP und Socket Forschung zur Echtzeit-Dateiübertragungstechnologie mit PHP und Socket Jun 28, 2023 am 09:11 AM

Mit der Entwicklung des Internets ist die Dateiübertragung zu einem unverzichtbaren Bestandteil der täglichen Arbeit und Unterhaltung der Menschen geworden. Herkömmliche Dateiübertragungsmethoden wie E-Mail-Anhänge oder Filesharing-Websites weisen jedoch bestimmte Einschränkungen auf und können die Anforderungen an Echtzeit und Sicherheit nicht erfüllen. Daher ist die Verwendung der PHP- und Socket-Technologie zur Erzielung einer Echtzeit-Dateiübertragung eine neue Lösung geworden. In diesem Artikel werden die technischen Prinzipien, Vorteile und Anwendungsszenarien der Verwendung der PHP- und Socket-Technologie zur Erzielung einer Echtzeit-Dateiübertragung vorgestellt und die Implementierungsmethode dieser Technologie anhand spezifischer Fälle demonstriert. Technologie

Häufige Netzwerkkommunikations- und Sicherheitsprobleme und Lösungen in C# Häufige Netzwerkkommunikations- und Sicherheitsprobleme und Lösungen in C# Oct 09, 2023 pm 09:21 PM

Häufige Netzwerkkommunikations- und Sicherheitsprobleme und Lösungen in C# Im heutigen Internetzeitalter ist Netzwerkkommunikation zu einem unverzichtbaren Bestandteil der Softwareentwicklung geworden. In C# treten normalerweise einige Netzwerkkommunikationsprobleme auf, z. B. die Sicherheit der Datenübertragung, die Stabilität der Netzwerkverbindung usw. In diesem Artikel werden häufig auftretende Netzwerkkommunikations- und Sicherheitsprobleme in C# ausführlich erläutert und entsprechende Lösungen und Codebeispiele bereitgestellt. 1. Netzwerkkommunikationsprobleme Unterbrechung der Netzwerkverbindung: Während des Netzwerkkommunikationsprozesses kann die Netzwerkverbindung unterbrochen werden, was zu Problemen führen kann

See all articles