Socket programming PHP is very similar to C. Most functions are similar in names, parameters, and output.Behind any kind of network, communications are done by socket or example when you type www.google.com in your web browser, it opens a socket and connects to google.com to fetch the page and display it to you.
Here we create 2 files one for the client and another for the server.
Client.php
Here we create 2 files one for the client and another for the server.
Client.php
- Create a socket
- Connect to remote server
- Send some data
- Receive a reply
Server.php
- Open a socket
- Bind to an address(and port).
- Listen to incoming connections.
- Accept connections
- Read/Send
Client.php
$host = "127.0.0.1";
$port = 25003;
$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
// set some variables
$host = "127.0.0.1";
$port = 25003;
// 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
while(2>1)
{
$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);
callfunction($input);
echo "Client Message : ".$input."\n";
// 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);
function callfunction($input)
{
echo "in another function:".$input."\n";
}
Comments
Post a Comment