Php connect to tcp port

How to open TCP connection in PHP

Connect and share knowledge within a single location that is structured and easy to search., php.net/manual/en/function.fsockopen.php – Poelinca Dorin Mar 15 ’11 at 9:00 , 14 Try How to write a good answer to a question – Gordon Mar 15 ’11 at 10:28

You can try the example from this link:

Answer by Linda Austin

Example #1 Socket example: Simple TCP/IP server,Example #2 Socket example: Simple TCP/IP client, This example shows a simple, one-shot HTTP client. It simply connects to a page, submits a HEAD request, echoes the reply, and exits. , Examples

 #!/usr/local/bin/php -qif (socket_bind($sock, $address, $port) === false) < echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n";>if (socket_listen($sock, 5) === false) < echo "socket_listen() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n";>do < if (($msgsock = socket_accept($sock)) === false) < echo "socket_accept() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n"; break; >/* Send instructions. */ $msg = "\nWelcome to the PHP Test Server. \n" . "To quit, type 'quit'. To shut down the server type 'shutdown'.\n"; socket_write($msgsock, $msg, strlen($msg)); do < if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) < echo "socket_read() failed: reason: " . socket_strerror(socket_last_error($msgsock)) . "\n"; break 2; >if (!$buf = trim($buf)) < continue; >if ($buf == 'quit') < break; >if ($buf == 'shutdown') < socket_close($msgsock); break 2; >$talkback = "PHP: You said '$buf'.\n"; socket_write($msgsock, $talkback, strlen($talkback)); echo "$buf\n"; > while (true); socket_close($msgsock);> while (true);socket_close($sock);?> 

Answer by Shawn Solis

You can create a socket with socket_create, open it with socket_connect and write with socket_write. socket_write documentation on php.net

You can try the example from this link:

Answer by Orlando Dejesus

TCP client socket , TCP client socket , Sockets , Sockets

Creating a socket that uses the TCP (Transmission Control Protocol)

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

Make sure the socket is successfully created. The onSocketFailure function comes from Handling socket errors example in this topic.

if(!is_resource($socket)) onSocketFailure("Failed to create socket"); 

The second line fails gracefully if connection failed.

socket_connect($socket, "chat.stackoverflow.com", 6667) or onSocketFailure("Failed to connect to chat.stackoverflow.com:6667", $socket); 

The socket_write function sends bytes through a socket. In PHP, a byte array is represented by a string, which is normally encoding-insensitive.

socket_write($socket, "NICK Alice\r\nUSER alice 0 * :Alice\r\n"); 

This example reads data from a supposedly IRC server.

while(true) < // read a line from the socket $line = socket_read($socket, 1024, PHP_NORMAL_READ); if(substr($line, -1) === "\r") < // read/skip one byte from the socket // we assume that the next byte in the stream must be a \n. // this is actually bad in practice; the script is vulnerable to unexpected values socket_read($socket, 1, PHP_BINARY_READ); >$message = parseLine($line); if($message->type === "QUIT") break; > 

Closing the socket frees the socket and its associated resources.

Читайте также:  Геттеры сеттеры java это

Answer by Israel Parks

How to Code a TCP Connect Port Scanner in PHP,How to code a TCP Connect Port Scanner in C with Winsock,How to Code a Port Scanner in C on Linux,A port scanner is a program designed to probe a server or host for open ports. Looking at open ports, one can tell what services might be running on the remote server.

Using fsockopen

desktop:~$ php /var/www/blog/port_scanner.php port 21 open port 22 open port 80 open

Using PHP Sockets

/* Simple TCP connect port scanner in php using fsockopen */ //avoid warnings PHP Warning: fsockopen(): unable to connect to 192.168.1.2:83 (Connection refused) in /var/www/blog/port_scanner.php on line 10 error_reporting(~E_ALL); $from = 1; $to = 255; //TCP ports $host = '192.168.1.2'; //Create a socket $socket = socket_create(AF_INET , SOCK_STREAM , SOL_TCP); for($port = $from; $port >
desktop:~$ php /var/www/blog/port_scanner.php port 21 open port 22 open port 80 open

Answer by Olivia Clayton

How to open TCP connection in PHP and send some String over that connection ( for example “test”) ?, How to configure Webpack to build without importing an external module? , I am trying to use a for loop in javascript to create a a table that displays * and for each row the columns increase by 1 * ,Online Free Tutorials Guruji Guide & Materials – Solved Questions Answers

Источник

Примеры

Этот пример показывает работу простого сервера. Измените переменные address и port в соответствии с вашими настройками и выполните. Затем вы можете соединиться с сервером с командой, похожей на: telnet 192.168.1.53 10000 (где адрес и порт должны соответствовать вашим настройкам). Всё, что вы наберёте на клавиатуре, будет затем выведено на сервере и отправлено вам обратно. Для отключения наберите ‘выход’.

Читайте также:  Java относится к интерпретируемым

#!/usr/local/bin/php -q
error_reporting ( E_ALL );

/* Позволяет скрипту ожидать соединения бесконечно. */
set_time_limit ( 0 );

/* Включает скрытое очищение вывода так, что мы видим данные
* как только они появляются. */
ob_implicit_flush ();

$address = ‘192.168.1.53’ ;
$port = 10000 ;

if (( $sock = socket_create ( AF_INET , SOCK_STREAM , SOL_TCP )) === false ) echo «Не удалось выполнить socket_create(): причина: » . socket_strerror ( socket_last_error ()) . «\n» ;
>

if ( socket_bind ( $sock , $address , $port ) === false ) echo «Не удалось выполнить socket_bind(): причина: » . socket_strerror ( socket_last_error ( $sock )) . «\n» ;
>

if ( socket_listen ( $sock , 5 ) === false ) echo «Не удалось выполнить socket_listen(): причина: » . socket_strerror ( socket_last_error ( $sock )) . «\n» ;
>

do if (( $msgsock = socket_accept ( $sock )) === false ) echo «Не удалось выполнить socket_accept(): причина: » . socket_strerror ( socket_last_error ( $sock )) . «\n» ;
break;
>
/* Отправляем инструкции. */
$msg = «\nДобро пожаловать на тестовый сервер PHP. \n» .
«Чтобы отключиться, наберите ‘выход’. Чтобы выключить сервер, наберите ‘выключение’.\n» ;
socket_write ( $msgsock , $msg , strlen ( $msg ));

do if ( false === ( $buf = socket_read ( $msgsock , 2048 , PHP_NORMAL_READ ))) echo «Не удалось выполнить socket_read(): причина: » . socket_strerror ( socket_last_error ( $msgsock )) . «\n» ;
break 2 ;
>
if (! $buf = trim ( $buf )) continue;
>
if ( $buf == ‘выход’ ) break;
>
if ( $buf == ‘выключение’ ) socket_close ( $msgsock );
break 2 ;
>
$talkback = «PHP: Вы сказали ‘ $buf ‘.\n» ;
socket_write ( $msgsock , $talkback , strlen ( $talkback ));
echo » $buf \n» ;
> while ( true );
socket_close ( $msgsock );
> while ( true );

Пример #2 Пример использования сокетов: Простой клиент TCP/IP

Этот пример показывает использование простого одноразового HTTP-клиента. Он просто соединяется со страницей, отправляет запрос HEAD, выводит ответ и завершает работу.

echo «

Соединение TCP/IP

\n» ;

/* Получаем порт сервиса WWW. */
$service_port = getservbyname ( ‘www’ , ‘tcp’ );

/* Получаем IP-адрес целевого хоста. */
$address = gethostbyname ( ‘www.example.com’ );

/* Создаём сокет TCP/IP. */
$socket = socket_create ( AF_INET , SOCK_STREAM , SOL_TCP );
if ( $socket === false ) echo «Не удалось выполнить socket_create(): причина: » . socket_strerror ( socket_last_error ()) . «\n» ;
> else echo «OK.\n» ;
>

echo «Пытаемся соединиться с ‘ $address ‘ на порту ‘ $service_port ‘. » ;
$result = socket_connect ( $socket , $address , $service_port );
if ( $result === false ) echo «Не удалось выполнить socket_connect().\nПричина: ( $result ) » . socket_strerror ( socket_last_error ( $socket )) . «\n» ;
> else echo «OK.\n» ;
>

Читайте также:  Underconstruction

$in = «HEAD / HTTP/1.1\r\n» ;
$in .= «Host: www.example.com\r\n» ;
$in .= «Connection: Close\r\n\r\n» ;
$out = » ;

echo «Отправляем HTTP-запрос HEAD. » ;
socket_write ( $socket , $in , strlen ( $in ));
echo «OK.\n» ;

echo «Читаем ответ:\n\n» ;
while ( $out = socket_read ( $socket , 2048 )) echo $out ;
>

echo «Закрываем сокет. » ;
socket_close ( $socket );
echo «OK.\n\n» ;
?>

User Contributed Notes 3 notes

You can easily extend the first example to handle any number of connections instead of jsut one

#!/usr/bin/env php
error_reporting ( E_ALL );

/* Permitir al script esperar para conexiones. */
set_time_limit ( 0 );

/* Activar el volcado de salida implícito, así veremos lo que estamo obteniendo
* mientras llega. */
ob_implicit_flush ();

$address = ‘127.0.0.1’ ;
$port = 10000 ;

if (( $sock = socket_create ( AF_INET , SOCK_STREAM , SOL_TCP )) === false ) echo «socket_create() falló: razón: » . socket_strerror ( socket_last_error ()) . «\n» ;
>

if ( socket_bind ( $sock , $address , $port ) === false ) echo «socket_bind() falló: razón: » . socket_strerror ( socket_last_error ( $sock )) . «\n» ;
>

if ( socket_listen ( $sock , 5 ) === false ) echo «socket_listen() falló: razón: » . socket_strerror ( socket_last_error ( $sock )) . «\n» ;
>

//clients array
$clients = array();

do $read = array();
$read [] = $sock ;

$read = array_merge ( $read , $clients );

// Set up a blocking call to socket_select
if( socket_select ( $read , $write = NULL , $except = NULL , $tv_sec = 5 ) < 1 )
// SocketServer::debug(«Problem blocking socket_select?»);
continue;
>

// Handle new Connections
if ( in_array ( $sock , $read ))

if (( $msgsock = socket_accept ( $sock )) === false ) echo «socket_accept() falló: razón: » . socket_strerror ( socket_last_error ( $sock )) . «\n» ;
break;
>
$clients [] = $msgsock ;
$key = array_keys ( $clients , $msgsock );
/* Enviar instrucciones. */
$msg = «\nBienvenido al Servidor De Prueba de PHP. \n» .
«Usted es el cliente numero: < $key [ 0 ]>\n» .
«Para salir, escriba ‘quit’. Para cerrar el servidor escriba ‘shutdown’.\n» ;
socket_write ( $msgsock , $msg , strlen ( $msg ));

// Handle Input
foreach ( $clients as $key => $client ) < // for each client
if ( in_array ( $client , $read )) if ( false === ( $buf = socket_read ( $client , 2048 , PHP_NORMAL_READ ))) echo «socket_read() falló: razón: » . socket_strerror ( socket_last_error ( $client )) . «\n» ;
break 2 ;
>
if (! $buf = trim ( $buf )) continue;
>
if ( $buf == ‘quit’ ) unset( $clients [ $key ]);
socket_close ( $client );
break;
>
if ( $buf == ‘shutdown’ ) socket_close ( $client );
break 2 ;
>
$talkback = «Cliente < $key >: Usted dijo ‘ $buf ‘.\n» ;
socket_write ( $client , $talkback , strlen ( $talkback ));
echo » $buf \n» ;
>

Источник

Оцените статью