Introdução à programação de soquetes em PHP
Todas as linguagens de programação fornecem o mecanismo para implementar a comunicação do servidor e do cliente. De acordo com esse mecanismo, o aplicativo permite que o servidor e o cliente troquem dados entre eles. Semelhante a outras linguagens de programação, o PHP também nos fornece esse mecanismo. A programação de soquete pode ser definida como a abordagem de programação que tem o servidor e o cliente como o aplicativo em que uma conexão deve ser estabelecida entre os dois para facilitar a comunicação entre eles. Em termos de PHP, também nos permite implementar o conceito de programação de soquete. Neste artigo, aprenderemos como implementar essa programação de soquete usando a linguagem de programação PHP.
Métodos de classe de soquete
Os métodos da classe socket são as funções especiais que nos permitem implementar a programação do socket. O programa que precisa ser escrito para trazer as funcionalidades da programação de soquete usa as funções de soquete predefinidas. Essas funções consistem nas instruções que desempenham o papel real na programação de soquete. Abaixo estão algumas das funções de soquete.
- Socket_accept: Esta é uma das funções muito comuns de soquete usada para aceitar uma conexão em um soquete. A função principal dessa função é permitir que a conexão seja aceita sempre que uma solicitação for atingida.
- Socket_addrinfo_bind: Esta função é usada para adicionar as informações fornecidas ao soquete. As informações aceitas devem ser atribuídas ao soquete para facilitar sua implementação.
- Socket_clear_error: Esta função é usada para limpar o erro que está no soquete. Além disso, esta função também limpa o erro no último código.
- Socket_close: como o nome indica, esta função é usada para fechar o recurso que pertence ao soquete.
- Socket_connect: Este método é usado para criar uma conexão de soquete. Na programação do soquete, o programa começa com o estabelecimento da conexão que pode ser feita usando esta função.
- Socket_create: Este método está relacionado à criação do soquete. O soquete criado usando esse método funciona como o ponto final da conexão.
- Socket_create_listen: Esta função é usada para abrir o soquete na porta especificada que aceita a conexão. Como o nome indica, ajuda a abrir o soquete para ouvir.
- Socket_create_pair: esse método geralmente é usado no aplicativo que precisa colocar em uso a parte complexa da programação de soquetes. Ajuda na criação dos soquetes indistinguíveis e esses são armazenados na matriz.
- Socket_get_option: este método é usado para obter as opções para o soquete. Um soquete é composto por várias opções que devem ser usadas de acordo com a aplicação. Usando esse método, podemos obter todas as opções que um soquete possui.
- Socket_getsockname: Este método é usado para consultar a região local do soquete selecionado e, em troca, pode obter os detalhes relacionados ao host / porta ou ao caminho do sistema de arquivos Unix. Qualquer que seja o resultado obtido, depende totalmente do tipo.
Exemplo de cliente de soquete
Nesta seção, veremos o código que será usado para implementar a programação do soquete do lado do cliente. O exemplo mencionado abaixo terá os detalhes da postagem e do host que serão usados para criar a conexão do soquete. Uma vez que a conexão é estabelecida, ela troca algumas das mensagens e espera uma resposta do servidor.
<_?php$port_number = 1230;
$IPadress_host = "127.0.0.1";
$hello_msg= "This is server";
echo "Hitting the server :".$hello_msg;
$socket_creation = socket_create(AF_INET, SOCK_STREAM, 0) or die("Unable to create connection with socket\n");
$server_connect = socket_connect($socket_creation, $IPadress_host, $port_number) or die("Unable to create connection with server\n");
socket_write($socket_creation, $hello_msg, strlen($hello_msg)) or die("Unable to send data to the server\n");
$server_connect = socket_read ($socket_creation, 1024) or die("Unable to read response from the server\n");
echo "Message from the server :".$server_connect;
socket_close($socket_creation);
?>
No exemplo acima, o número da porta é 1230 no qual o programa tenta se conectar. O endereço IP do host será o IP do host local. Se alguém estiver disposto a interagir com o servidor remoto, poderá mencionar o endereço IP do servidor. Em seguida, a mensagem será enviada ao servidor que será mostrado na página de resposta. A criação do soquete será processada posteriormente. Neste programa, existe um mecanismo adequado para lidar com o erro usando o método die. Se algo desse errado nesse caso, o método do dado é revogado e a mensagem dada nesse aparece.
Exemplo de servidor de soquete
O exemplo detalhado nesta seção terá os códigos PHP que serão aproveitados para implementar a programação do soquete no lado do servidor. Os detalhes do IP e o número da porta usados no último exemplo também permanecerão os mesmos neste exemplo. A principal diferença neste exemplo será a principal diferença que a separa da linguagem de programação do soquete do lado do cliente. Permite ao processo entender o código PHP para programação de soquete do lado do servidor.
<_?php$port_number = 1230;
$IPadress_host = "127.0.0.1";
set_time_limit(0);
$socket_creation = socket_create(AF_INET, SOCK_STREAM, 0) or die("Unable to create socket\n");$socket_outcome = socket_bind($socket_creation, $IPadress_host, $port_number ) or die("Unable to bind to socket\n");
$socket_outcome = socket_listen($socket_creation, 3) or die("Unable to set up socket listener\n");
$socketAccept = socket_accept($socket_creation) or die("Unable to accept incoming connection\n");
$data = socket_read($socketAccept, 1024) or die("Unable to read input\n");
$data = trim($data);
echo "Client Message : ".$data;
$outcome = strrev($data) . "\n";
socket_write($socketAccept, $outcome, strlen ($outcome)) or die("Unable to write output\n");
socket_close($socketAccept);
socket_close($socket_creation);
?>
No exemplo acima, o programa foi desenvolvido para funcionar no host local. O endereço IP mencionado aqui pertence ao host local e o número da porta pode executar o serviço TCP e UDP nele. O passo inicial é sempre a criação do soquete, pois é algo que será usado durante todo o programa. Posteriormente, o soquete foi ligado aos valores especificados que ajudarão no funcionamento. Os métodos usados neste programa têm o significado predefinido que pode ser usado para uma finalidade específica. Quando tudo correr bem, o programa funcionará de acordo e fechará a conexão do soquete.
Conclusão - Programação de soquetes em PHP
A linguagem de programação do soquete é usada para permitir que o aplicativo funcione no servidor e no modelo do cliente. Essa abordagem de programação permite estabelecer a conexão entre o servidor e o cliente para facilitar a troca de dados. Para tornar a programação do soquete fácil e conveniente, o PHP forneceu os métodos predefinidos em que todos os métodos têm algumas tarefas exclusivas atribuídas a eles.
Artigos recomendados
Este é um guia para programação de soquetes em PHP. Aqui discutimos os métodos que permitem implementar a programação de soquetes e como isso permite que o servidor e o cliente troquem dados entre eles. Você também pode consultar nossos outros artigos relacionados para saber mais -
- Introdução ao encapsulamento em PHP
- Construtor em PHP | Tipos de Construtor
- O que é substituição em PHP?
- Constantes mágicas do PHP
- Função Recursiva PHP
- Exemplos de funções de string PHP
- Guia de programação de soquetes em Java