сокет на стороне клиента не работает - PullRequest
1 голос
/ 08 мая 2019

Я пытаюсь подключиться к сокету на стороне сервера, создав файл клиента на моем локальном компьютере.Ниже приведен мой php-код:

Файл клиента php:

<?php
     set_time_limit(0);

     $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

     $res = socket_connect($socket, 'localhost', 11500) or die(socket_strerror(socket_last_error($socket)));

     $input = "<sending some input parameters to server side>";

     socket_write($socket, $input, strlen($input));
     $res = socket_read($socket, 1024);

     echo $res;

     socket_close($socket);
?>

Файл на стороне сервера:

<?php
     set_time_limit(0);

     $address = "<hostname>";
     $port = <port>;

     $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

     socket_listen($socket);

     $client = socket_accept($socket);

     $input = socket_read($client, 1024);

     //---- Performing some server side functions and returning output

     socket_write($client, $output);
     socket_close($socket);

 ?>

Но не выводится и выдает ошибку, "соединениеотказался»..

1 Ответ

1 голос
/ 08 мая 2019

вам нужно использовать socket_bind на стороне сервера, чтобы он связывался с портом и данным именем хоста.Попробуйте ввести следующий код:

<?php
     set_time_limit(0);

     $address = "<hostname>";
     $port = <port>;

     $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

     socket_bind($socket, $address, $port) or die("Can't bind the socket");

     socket_listen($socket);

     $client = socket_accept($socket);

     $input = socket_read($client, 1024);

     //---- Performing some server side functions and returning output

     socket_write($client, $output);
     socket_close($socket);

 ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...