Программирование сокетов в PHP с localhot на живой сервер

Я хочу использовать сокет программирования в PHP, Здесь я хочу отправить ответ от местная машина в жить разорвать (например, www.example.com).

В example.com я хочу поймать ответ.

Я перепробовал много способов, которые доступны в интернете, но ничего для меня не пригодилось.

Предположим … Я хочу использовать эту технику для приложения чата.

Я могу отправлять и получать ответ с локального на локальный и xyz live server на xyz live server ….

Теперь я хочу получить доступ к этому из локальных в XYZ ИЛИ ABC в XYZ

//client.php
<form method="POST">

<input type="text" name="message">
<input type="submit">
</form><?php
if (isset($_POST['message']) && $_POST['message'] != ''){
/*
* PHP Sockets - How to create a sockets server/client
*/

//include the server.php script to start the server
//include_once('server.php');

$host    = "192.186.246.136";
$port    = 4096;

$message = $_POST['message'];

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 ip and port
$host = "192.186.246.136";
$port = 4096;
// don't timeout!
set_time_limit(0);
// create socket
$socket = socket_create(AF_INET, SOCK_STREAM, 0);
// bind socket to port
$result = socket_bind($socket, $host, $port);
// start listening for connections
$result = socket_listen($socket, 3);

// 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."<br />";
// reverse client input and send back
$output = strrev($input) ."<br />";
socket_write($spawn, $output, strlen ($output)) or die("Could not write output\n");
// close sockets
socket_close($spawn);
socket_close($socket);
?>

3

Решение

Может быть, рабочий поможет тебе.
Это фреймворк для сокетов для php.

http://github.com/walkor/workerman

Например простой чат-сервер

Файл: Приложения / SimpleChat / start.php

<?php
use Workerman\Worker;

$global_uid = 0;
$connections_array = array();

function handler_connection($connection)
{
global $connections_array, $global_uid;
$connection->uid = ++$global_uid;
$connections_array[$connection->uid] = $connection;
}

// send to all
function handle_message($connection, $data)
{
global $connections_array;
foreach($connections_array as $conn)
{
$conn->send("user[{$connection->uid}] said: $data");
}
}

// clear
function handle_close($connection)
{
global $connections_array;
unset($connections_array[$connection->uid]);
}// Websockt
$text_worker = new Worker("Text://0.0.0.0:2347");

// one process
$text_worker->count = 1;

$text_worker->onConnect = 'handler_connection';
$text_worker->onMessage = 'handle_message';
$text_worker->onClose = 'handle_close';

Затем вы можете использовать команду telnet для тестирования.

telnet 127.0.0.1 2347
...
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]