Introdução a Sockets no PHP
Agora que você já sabe abrir uma nova conexão, que tal começar a ler e escrever na mesma?
Para ler uma socket usamos a função fgets(), que tem a seguinte sintaxe:
Esta função retorna uma string com o que está escrito na socket, a partir do 'ponteiro', seu primeiro parametro corresponde à variável da socket ($conex por exemplo), e o segundo parâmetro é o tamanho da string que vai ser pega da conexão.
Exemplo de uso da função fgets:
Este pequeno script abrirá uma conexão com o website google.com e vai 'pedir' para o servidor o conteúdo da index do site.
Você deve ter notado que nesse exemplo usamos duas funções que ainda não foram apresentadas anteriormente: fputs() e feof().
A função feof() testa se a sua conexão chegou ao 'fim-da-linha', ou seja, se já terminou de transmitir os dados que deveriam ser transmitidos (o fim do 'ponteiro').
A função fputs() escreve algo na conexão, sua sintaxe é a seguinte:
O primeiro parâmetro da função fputs() é a variável que a socket usa, no último exemplo foi $fp, o segundo parâmetro é a string que irá ser escrita na socket, o terceiro e último parâmetro é opcional, ele contém o tamanho da string a ser escrita na socket.
Para ler uma socket usamos a função fgets(), que tem a seguinte sintaxe:
string fgets ( int fp [, int length])
Esta função retorna uma string com o que está escrito na socket, a partir do 'ponteiro', seu primeiro parametro corresponde à variável da socket ($conex por exemplo), e o segundo parâmetro é o tamanho da string que vai ser pega da conexão.
Exemplo de uso da função fgets:
<?php $fp = fsockopen("www.google.com", 80, $errno, $errstr, 30); if (!$fp) { echo "Erro: $errstr ($errno)<br>\n"; } else { fputs($fp, "GET / HTTP/1.0\r\nHost: www.google.com\r\n\r\n"); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); } ?>
Este pequeno script abrirá uma conexão com o website google.com e vai 'pedir' para o servidor o conteúdo da index do site.
Você deve ter notado que nesse exemplo usamos duas funções que ainda não foram apresentadas anteriormente: fputs() e feof().
A função feof() testa se a sua conexão chegou ao 'fim-da-linha', ou seja, se já terminou de transmitir os dados que deveriam ser transmitidos (o fim do 'ponteiro').
A função fputs() escreve algo na conexão, sua sintaxe é a seguinte:
int fputs ( int fp, string str [, int length])
O primeiro parâmetro da função fputs() é a variável que a socket usa, no último exemplo foi $fp, o segundo parâmetro é a string que irá ser escrita na socket, o terceiro e último parâmetro é opcional, ele contém o tamanho da string a ser escrita na socket.
estou querendo fazer uma conexão ao meu proprio site usando a porta 2082 (www.jlle.org) senha e user
eu posso conectar direto (http://usuario:senha@jlle.org:2082)
porem queria alguma maneira de acessar atravez de uma outra pagina em php para que outros usuários tenham acesso a alguns beneficios tipo um formulario, eles prenchem e envian logo o arquivo deveria executar a conexão enviar os dados atraves da porta aberta fechar e dar retorno de OK ao usuario. alguem poderiá me ajudar atenciosamente
max
eu posso conectar direto (http://usuario:senha@jlle.org:2082)
porem queria alguma maneira de acessar atravez de uma outra pagina em php para que outros usuários tenham acesso a alguns beneficios tipo um formulario, eles prenchem e envian logo o arquivo deveria executar a conexão enviar os dados atraves da porta aberta fechar e dar retorno de OK ao usuario. alguem poderiá me ajudar atenciosamente
max
22/09/2003 1:43pm
(~21 anos atrás)
Com o uso dos sockets é possivel fazer um script em php que envie mensagens instântaneas?
15/09/2003 9:41pm
(~21 anos atrás)
Eu poço utilizar nisso o mesmo bot --> normal q eu utilizava no meu mirc? Ou vou ter q criar um bot q seja compativel com o php?
03/07/2003 12:24pm
(~21 anos atrás)
Eu fiz um bot de exemplo e ja o disponibilizei aqui na PHPBrasil.com, se quiserem estudar ele é bem simples só para estudo.
16/12/2002 11:51am
(~22 anos atrás)
Olá,
Pessoal... Desencanem deste bot, aí tem tudo para vocês fazerem o bot, só deêm uma lida no RFC do protocolo ou executem o comando de debug do mIRC, q eu passei no artigo. Não sei se vou lançar meu bot, e se for, não sei quando, não fiquem esperando por mim, tentem fazer sozinhos, escrevi este artigo justamente para isso, fazerem vocês mesmos isso.
Quanto a conectar a um servidor POP3, leiam o RFC também, é bem fácil de entender o RFC do POP3... Leiam lá, sabendo trabalhar com o protocolo, fica fácil.
Vou procurar aqui na minha máquina por algum exemplo que eu tenha feito, que conecte a um servidor POP3, se eu encontrar, passo aqui para vocês...
Um abraço,
Luiz Gustav Cardoso Ribeiro
Pessoal... Desencanem deste bot, aí tem tudo para vocês fazerem o bot, só deêm uma lida no RFC do protocolo ou executem o comando de debug do mIRC, q eu passei no artigo. Não sei se vou lançar meu bot, e se for, não sei quando, não fiquem esperando por mim, tentem fazer sozinhos, escrevi este artigo justamente para isso, fazerem vocês mesmos isso.
Quanto a conectar a um servidor POP3, leiam o RFC também, é bem fácil de entender o RFC do POP3... Leiam lá, sabendo trabalhar com o protocolo, fica fácil.
Vou procurar aqui na minha máquina por algum exemplo que eu tenha feito, que conecte a um servidor POP3, se eu encontrar, passo aqui para vocês...
Um abraço,
Luiz Gustav Cardoso Ribeiro
23/10/2002 3:00pm
(~22 anos atrás)
Luiz Gustavo,
Muito bom o seu artigo, parabéns!
Pelo que deu pra notar, trabalhar com sockets seria parecido com trabalhar com arquivos?
Valeu!
Caio Filipini
Muito bom o seu artigo, parabéns!
Pelo que deu pra notar, trabalhar com sockets seria parecido com trabalhar com arquivos?
Valeu!
Caio Filipini
04/10/2002 12:16am
(~22 anos atrás)
DoS significa Denial of Service.
Olha cara, acho extremamente estúpido querer fazer coisas desse tipo usando php. Qual a utilidade disso?
Abraços,
Luiz Gustavo
Olha cara, acho extremamente estúpido querer fazer coisas desse tipo usando php. Qual a utilidade disso?
Abraços,
Luiz Gustavo
01/10/2002 12:16pm
(~22 anos atrás)
Daniel, Acredito que ele falava de Denial Of Service (DOS)... ;) e realmente é um fato.
01/10/2002 11:20am
(~22 anos atrás)
por meio de Socket em PHP, onde através de um site obtêm informações como por exemplo se um computador ligado ou desligado? Parecido com acesso remoto.