<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >socket_create</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="Manual do PHP" HREF="index.html"><LINK REL="UP" TITLE="Funções de Socket" HREF="ref.sockets.html"><LINK REL="PREVIOUS" TITLE="socket_create_pair" HREF="function.socket-create-pair.html"><LINK REL="NEXT" TITLE="socket_get_option" HREF="function.socket-get-option.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="refentry" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >Manual do PHP</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="function.socket-create-pair.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.socket-get-option.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="function.socket-create" ></A >socket_create</H1 ><DIV CLASS="refnamediv" ><A NAME="AEN208331" ></A ><P > (PHP 4 >= 4.1.0, PHP 5)</P >socket_create -- Cria um socket (endpoint para comunicação)</DIV ><DIV CLASS="refsect1" ><A NAME="AEN208334" ></A ><H2 >Descrição</H2 >resource <B CLASS="methodname" >socket_create</B > ( int domain, int type, int protocol )<BR ></BR ><P > Cria e retorna um socket resource, também referenciado como um endpoint para comunicação. Uma conexão típica de rede é feita em cima de 2 sockets, um realizando o papel do cliente, e o outro realizando o papel de servidor. </P ><P > O parâmetro <CODE CLASS="parameter" >domain</CODE > especifica a família do protocolo para ser usado pelo socket. </P ><DIV CLASS="table" ><A NAME="AEN208351" ></A ><P ><B >Tabela 1. Famílias disponíveis Endereços/Protocolos</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL><COL><THEAD ><TR ><TH >Domínio</TH ><TH >Descrição</TH ></TR ></THEAD ><TBODY ><TR ><TD >AF_INET</TD ><TD > IPv4 baseado nos protocolos de Internet. TCP e UDP são protocolos comuns dessa família de protocolos. </TD ></TR ><TR ><TD >AF_INET6</TD ><TD > IPv6 baseado nos protocolos de Internet. TCP e UDP são protocolos comuns dessa família de protocolos. Suporta adicionado no <TT CLASS="literal" >PHP 5.0.0</TT >. </TD ></TR ><TR ><TD >AF_UNIX</TD ><TD > Família de protocolos de comunicação local. Alta eficiência e baixo sobrecarga fazem deste uma forte forma de IPC (Processos internos de comunicação). </TD ></TR ></TBODY ></TABLE ></DIV ><P > O parâmetro <CODE CLASS="parameter" >type</CODE > seleciona o tipo de comunicação para ser usado pelo socket. </P ><DIV CLASS="table" ><A NAME="AEN208371" ></A ><P ><B >Tabela 2. Tipos de socket disponíveis</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL><COL><THEAD ><TR ><TH >Tipo</TH ><TH >Descrição</TH ></TR ></THEAD ><TBODY ><TR ><TD >SOCK_STREAM</TD ><TD > Fornece sequencial, seguro, e em ambos os sentidos, conexões baseadas em "byte streams". Dados "out-of-band" do mecanismo de transmissão devem ser suportados. O protocolo TCP é baseado neste tipo de socket. </TD ></TR ><TR ><TD >SOCK_DGRAM</TD ><TD > Suporta diagrama de dados (baixa conexão, mensagens inconfiáveis de um comprimento máximo fixo). O protocolo UDP protocol é baseado neste tipo de socket. </TD ></TR ><TR ><TD >SOCK_SEQPACKET</TD ><TD > Fornece um sequencial, seguro, e em duas direções de tipos de conexões para transmissão de dados endereçados para o diagrama de dados de comprimento máximo fixo; um consumidor é requerido para ler um pacote inteiro com cada chamada de leitura. </TD ></TR ><TR ><TD >SOCK_RAW</TD ><TD > Fornece um protocolo de rede de acesso rápido. Este tipo especial de socket pode ser usado manualmente para construir algum tipo de protocolo. Um uso comum para esse tipo de socket é desempenhar requisições ICMP (como ping, traceroute, etc). </TD ></TR ><TR ><TD >SOCK_RDM</TD ><TD > Fornece uma camada seguro que não garante ordenação. Isso é comumente não implementado no seu sistema operacional. </TD ></TR ></TBODY ></TABLE ></DIV ><P > O parâmetro <CODE CLASS="parameter" >protocol</CODE > configura o protocolo especificado dentro do <CODE CLASS="parameter" >domain</CODE > especificado para ser usado quando houver comunicação de retorno com o socket. O valor da propriedade pode ser retornado pelo nome usando <A HREF="function.getprotobyname.html" ><B CLASS="function" >getprotobyname()</B ></A >. Se o protocolo desejado é TCP, ou UDP as constantes correspondentes são <TT CLASS="constant" ><B >SOL_TCP</B ></TT >, e <TT CLASS="constant" ><B >SOL_UDP</B ></TT > podem também ser usadas. </P ><DIV CLASS="table" ><A NAME="AEN208400" ></A ><P ><B >Tabela 3. Protocolos comuns</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL><COL><THEAD ><TR ><TH >Nome</TH ><TH >Descrição</TH ></TR ></THEAD ><TBODY ><TR ><TD >icmp</TD ><TD > O protocolo de controle de mensagens internet "The Internet Control Message Protocol" é usado primariamente por gateways e hosts para reportar erros no diagrama de dados de comunicação. O comando "ping" (presente em muitos modernos sistemas operacionais) é um exemplo aplicado de ICMP. </TD ></TR ><TR ><TD >udp</TD ><TD > O protocolo de diagrama de dados de usuários "User Datagram Protocol" é de conexão baixa, inseguro, protocolo com comprimento fixo. Dois destes aspectos, UDP requer uma quantidade mínima de sobrecarga de protocolo. </TD ></TR ><TR ><TD >tcp</TD ><TD > O protocolo de controle de transmissão é uma conexão, seguro, fluxo orientado, e protocolo de ida e volta. TCP garante que todos os pacotes de dados irão ser recebidos na ordem que eles são enviados. Se algum pacote está perdido de alguma maneira durante a comunicação, TCP irá automaticamente retransmitir o pacote até que o host de destino reconheça aquele pacote. Por razões de segurança e performance, o TCP implementa nele próprio decisões apropriadas de limite de octetos do diagrama de dados abaixo da camada de comunicação. Portanto, aplicações TCP devem permitir para possibilidades de registro de transmissões. </TD ></TR ></TBODY ></TABLE ></DIV ><P > <B CLASS="function" >socket_create()</B > retorna um socket resource em caso de sucesso, ou <TT CLASS="constant" ><B >FALSE</B ></TT > em caso de erro. O código de erro atual pode ser retornado chamando <A HREF="function.socket-last-error.html" ><B CLASS="function" >socket_last_error()</B ></A >. Esse código de erro deve ser passado para <A HREF="function.socket-strerror.html" ><B CLASS="function" >socket_strerror()</B ></A > para pegar uma explicação textual do erro. </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > Se um inválido <CODE CLASS="parameter" >domain</CODE > ou <CODE CLASS="parameter" >type</CODE > é dado, <B CLASS="function" >socket_create()</B > padrão é para <TT CLASS="constant" ><B >AF_INET</B ></TT > e <TT CLASS="constant" ><B >SOCK_STREAM</B ></TT > respectivamente e adicionamente emitem uma mensagem <TT CLASS="constant" ><B >E_WARNING</B ></TT >. </P ></BLOCKQUOTE ></DIV ><P > Veja também <A HREF="function.socket-accept.html" ><B CLASS="function" >socket_accept()</B ></A >, <A HREF="function.socket-bind.html" ><B CLASS="function" >socket_bind()</B ></A >, <A HREF="function.socket-connect.html" ><B CLASS="function" >socket_connect()</B ></A >, <A HREF="function.socket-listen.html" ><B CLASS="function" >socket_listen()</B ></A >, <A HREF="function.socket-last-error.html" ><B CLASS="function" >socket_last_error()</B ></A >, e <A HREF="function.socket-strerror.html" ><B CLASS="function" >socket_strerror()</B ></A >. </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="function.socket-create-pair.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Principal</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="function.socket-get-option.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >socket_create_pair</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ref.sockets.html" ACCESSKEY="U" >Acima</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >socket_get_option</TD ></TR ></TABLE ></DIV ></BODY ></HTML >