2016-05-18 7 views
-1

Ich habe schon einige Tutorials für Socket durchgespielt, aber ich konnte nicht verstehen, was es tut. Ich möchte wissen, was Sockets tun und warum es verwendet wird. Dies ist der Code, den ich genannt habe.Was ist Socket in PHP? Und in welchem ​​Zustand sollte ich für Socket-Verbindung gehen?

client.php 
<?php 
$host = "localhost"; 
$port = 1024; 
$message = "Hello Server"; 
echo "Message To server :".$message; 
// create socket 
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create    socket\n"); 
// connect to server 
$result = socket_connect($socket, $host, $port) or die("Could not connect to server\n"); 
// send string to server 
socket_write($socket, $message, strlen($message)) or die("Could not send data to server\n"); 
// get server response 
$result = socket_read ($socket, 1024) or die("Could not read server response\n"); 
echo "Reply From Server :".$result; 
// close socket 
socket_close($socket); 
?> 

server.php 
<?php 
// set some variables 
$host = "localhost"; 
$port = 1024; 
// don't timeout! 
set_time_limit(0); 
// create socket 
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n"); 
// bind socket to port 
$result = socket_bind($socket, $host, $port) or die("Could not bind to socket\n"); 
// start listening for connections 
$result = socket_listen($socket, 3) or die("Could not set up socket listener\n"); 

// accept incoming connections 
// spawn another socket to handle communication 
$spawn = socket_accept($socket) or die("Could not accept incoming connection\n"); 
// read client input 
$input = socket_read($spawn, 1024) or die("Could not read input\n"); 
// clean up input string 
$input = trim($input); 
echo "Client Message : ".$input; 
// reverse client input and send back 
$output = strrev($input) . "\n"; 
socket_write($spawn, $output, strlen ($output)) or die("Could not write output\n"); 
// close sockets 
socket_close($spawn); 
socket_close($socket); 
?> 

So konnte ich nicht die Idee, wo der Server-Code und Client-Code eingeben. Normalerweise schreiben wir Servercode darüber, was er tun soll, wenn er Benutzereingaben erhält. Daher bin ich sehr verwirrt darüber. Kann mir jemand helfen? Vielen Dank im Voraus

+1

Ich wähle diese Frage als Wegthema zu schließen, weil es da ist. –

+0

Wenn es dort ist, können Sie bitte vorschlagen, wo es ist? Es wird eine große Hilfe sein. – Sam

+0

Vielen Dank @RyanVincent es ist ein sehr nützlicher Artikel zu wissen, wie zwei Computer miteinander kommunizieren. Aber sie haben nichts über Steckdosen gesagt. Kannst du mir dabei helfen? Oder schlagen Sie mir einen Artikel vor, der über Sockets und deren Implementierung informiert. Ich habe bereits eine Chat-Anwendung entwickelt. Ich werde die Nachricht, die von einem Benutzer an die Datenbank gesendet wurde, speichern und sie dem anderen Benutzer anzeigen. Die Seite wird mit Ajax aktualisiert. Also was ich tun muss, um den Chat durch die Socket-Programmierung laufen zu lassen. Kannst du den Ablauf erklären? – Sam

Antwort

0

Sie müssen das Konzept der Socket-Programmierung verstehen. Um eine bessere Idee zu bekommen.

Buchsen werden für die Interprozesskommunikation verwendet. Interprozess Kommunikation basiert im Allgemeinen auf Client-Server-Modell. In diesem Fall sind Client-Server die Anwendungen, die miteinander interagieren. Die Interaktion zwischen Client und Server erfordert eine Verbindung. Socket Programmierung ist verantwortlich für die Herstellung dieser Verbindung zwischen Anwendungen zu interagieren.

Die Clientanwendung sendet eine Nachricht ($ message) an den Server ($ host) und die Serveranwendung empfängt sie vom Client über einen Port ($ port).

Die client.php wird ausgeführt und sendet die Nachricht von einem Clientcomputer. Die server.php läuft auf dem Server, der die Nachricht empfängt.

Probieren Sie diesen Link auch hat ein Beispiel und wie Sie die Server-und Client-Dateien ausführen.

http://www.binarytides.com/php-socket-programming-tutorial/
http://www.devshed.com/c/a/php/socket-programming-with-php/

+0

"Die client.php läuft und sendet die Nachricht von einem Client-Rechner. Die server.php läuft auf dem Server-Rechner, der die Nachricht empfängt." Da PHP eine serverseitige Skriptsprache ist, schreiben wir serverseitiges Scripting und wo sollte der Clientcode geschrieben werden? Und was ist die Notwendigkeit, Sockets zu verwenden? Was ist der Vorteil der Socket-Programmierung und unter welchen Umständen kann sie verwendet werden? Kannst du bitte diese Dinge erklären? – Sam

+0

PHP ist eine serverseitige Skriptsprache, wenn es um Web-Programmierung geht. PHP kann als allgemeine Programmiersprache in Fällen wie Socket-Programmierung verwendet werden. Ein häufiges Beispiel ist eine Chat-Anwendung, bei der Socket-Programmierung verwendet wird. Die client.php wird in diesem Fall von Benutzern verwendet, die sich zum chatten anmelden, und die server.php empfängt und leitet die Chat-Nachrichten weiter, die von einem Benutzer an einen anderen gesendet werden. Socket ist quasi ein Endpunkt, durch den nach dem Verbindungsaufbau Nachrichten ausgetauscht werden. http://stackoverflow.com/questions/152457/what-is-the-difference-between-a-port-and-a-socket – zapping

+0

Genau ich muss Socket-Programmierung in meiner Chat-Anwendung implementieren. Dort werde ich die von einem Benutzer an die Datenbank gesendete Nachricht speichern und sie dem anderen Benutzer anzeigen. Die Seite wird mit Ajax aktualisiert. Also was ich tun muss, um den Chat durch die Socket-Programmierung laufen zu lassen.Kannst du den Ablauf erklären? An welcher Stelle sollte Socket entweder zum Zeitpunkt des Speicherns von Daten in der Datenbank oder zum Aktualisieren der Seite implementiert werden? – Sam

Verwandte Themen