Translation

(itstool) path: sect4/programlisting

int socket(int domain, int type, int protocol);
49/470
Context English Portuguese (Brazil) State
_ external ref='sockets/slayers' md5='__failed__' external ref='sockets/slayers' md5='__failed__'
+----------------+
|xxxxEthernetxxxx|
|+--------------+|
||xxxxxxIPxxxxxx||
||+------------+||
|||xxxxxTCPxxxx|||
|||+----------+|||
|||| HTTP ||||
||||+--------+||||
||||| PNG |||||
|||||+------+|||||
|||||| Data ||||||
|||||+------+|||||
||||+--------+||||
|||+----------+|||
||+------------+||
|+--------------+|
+----------------+
+----------------+
|xxxxEthernetxxxx|
|+--------------+|
||xxxxxxIPxxxxxx||
||+------------+||
|||xxxxxTCPxxxx|||
|||+----------+|||
|||| HTTP ||||
||||+--------+||||
||||| PNG |||||
|||||+------+|||||
|||||| Data ||||||
|||||+------+|||||
||||+--------+||||
|||+----------+|||
||+------------+||
|+--------------+|
+----------------+
<imageobject> <imagedata fileref="sockets/slayers"/> </imageobject> <textobject> <_:literallayout-1/> </textobject> <textobject> <phrase>Sockets Covered Protocol Layers</phrase> </textobject> <imageobject><imagedata fileref="sockets/slayers"/></imageobject><textobject> &lt;_: literallayout-1 /&gt; </textobject><textobject><phrase> Camadas de protocolo cobertas de soquetes </phrase></textobject>
We only need to understand any protocols that tell us how to <emphasis>interpret the data</emphasis>, not how to <emphasis>receive</emphasis> it from another process, nor how to <emphasis>send</emphasis> it to another process. Só precisamos entender os protocolos que nos dizem como <emphasis> interpretar os dados </emphasis> não como <emphasis> receber </emphasis> de outro processo, nem como <emphasis> enviar </emphasis> para outro processo
The Sockets Model O modelo de soquetes
<acronym>BSD</acronym> sockets are built on the basic <trademark class="registered">UNIX</trademark> model: <emphasis>Everything is a file.</emphasis> In our example, then, sockets would let us receive an <emphasis>HTTP file</emphasis>, so to speak. It would then be up to us to extract the <emphasis><acronym>PNG</acronym> file</emphasis> from it. Soquetes <acronym>BSD</acronym> são construídos sobre o básico <trademark class="registered"> UNIX </trademark> modelo: <emphasis> Tudo é um arquivo. </emphasis> Em nosso exemplo, então, os soquetes nos permitiriam receber <emphasis> Arquivo HTTP </emphasis> , por assim dizer. Então, seria nossa tarefa extrair o <emphasis> Arquivo <acronym>PNG</acronym> </emphasis> a partir dele.
Because of the complexity of internetworking, we cannot just use the <function role="syscall">open</function> system call, or the <function>open()</function> C function. Instead, we need to take several steps to <quote>opening</quote> a socket. Devido à complexidade da internetworking, não podemos simplesmente usar o <function role="syscall"> aberto </function> chamada do sistema ou <function> aberto() </function> Função C. Em vez disso, precisamos dar vários passos para <quote> abertura </quote> uma tomada.
Once we do, however, we can start treating the <emphasis>socket</emphasis> the same way we treat any <emphasis>file descriptor</emphasis>: We can <function>read</function> from it, <function>write</function> to it, <function>pipe</function> it, and, eventually, <function>close</function> it. Uma vez que fazemos, no entanto, podemos começar a tratar <emphasis> soquete </emphasis> da mesma forma que tratamos qualquer <emphasis> descritor de arquivo </emphasis> : Nós podemos <function> ler </function> a partir dele, <function> Escreva </function> para isso, <function> tubo </function> e, eventualmente, <function> fechar </function> isto.
Essential Socket Functions Funções essenciais de soquete
While FreeBSD offers different functions to work with sockets, we only <emphasis>need</emphasis> four to <quote>open</quote> a socket. And in some cases we only need two. Enquanto o FreeBSD oferece funções diferentes para trabalhar com sockets, <emphasis> necessidade </emphasis> quatro para <quote> aberto </quote> uma tomada. E, em alguns casos, precisamos apenas de dois.
The Client-Server Difference A diferença cliente-servidor
Typically, one of the ends of a socket-based data communication is a <emphasis>server</emphasis>, the other is a <emphasis>client</emphasis>. Normalmente, uma das extremidades de uma comunicação de dados baseada em soquete é <emphasis> servidor </emphasis> , o outro é um <emphasis> cliente </emphasis>
The Common Elements Os elementos comuns
<function>socket</function> <function> soquete </function>
The one function used by both, clients and servers, is <citerefentry><refentrytitle>socket</refentrytitle><manvolnum>2</manvolnum></citerefentry>. It is declared this way: A única função usada por ambos, clientes e servidores, é <citerefentry><refentrytitle> soquete </refentrytitle><manvolnum> 2 </manvolnum></citerefentry> . É declarado desta maneira:
int socket(int domain, int type, int protocol);
int socket(int domain, int type, int protocol);
The return value is of the same type as that of <function>open</function>, an integer. FreeBSD allocates its value from the same pool as that of file handles. That is what allows sockets to be treated the same way as files. O valor de retorno é do mesmo tipo que o de <function> aberto </function> , um inteiro. O FreeBSD aloca seu valor do mesmo conjunto de identificadores de arquivos. Isso é o que permite que os sockets sejam tratados da mesma maneira que os arquivos.
The <varname>domain</varname> argument tells the system what <emphasis>protocol family</emphasis> you want it to use. Many of them exist, some are vendor specific, others are very common. They are declared in <filename>sys/socket.h</filename>. O <varname> domínio </varname> argumento diz ao sistema que <emphasis> família de protocolo </emphasis> você quer que ele use. Muitos deles existem, alguns são específicos do fornecedor, outros são muito comuns. Eles são declarados em <filename> sys / socket.h </filename>
Use <constant>PF_INET</constant> for <acronym>UDP</acronym>, <acronym>TCP</acronym> and other Internet protocols (<acronym>IP</acronym>v4). Usar <constant> PF_INET </constant> para <acronym>UDP</acronym> , <acronym>TCP</acronym> e outros protocolos da Internet ( <acronym>IP</acronym> v4).
Five values are defined for the <varname>type</varname> argument, again, in <filename>sys/socket.h</filename>. All of them start with <quote><constant>SOCK_</constant></quote>. The most common one is <constant>SOCK_STREAM</constant>, which tells the system you are asking for a <emphasis>reliable stream delivery service</emphasis> (which is <acronym>TCP</acronym> when used with <constant>PF_INET</constant>). Cinco valores são definidos para o <varname> tipo </varname> argumento, novamente, em <filename> sys / socket.h </filename> . Todos eles começam com <quote><constant> MEIA_ </constant></quote> . O mais comum é <constant> SOCK_STREAM </constant> , que informa ao sistema que você está pedindo uma <emphasis> serviço de entrega de fluxo confiável </emphasis> (que é <acronym>TCP</acronym> quando usado com <constant> PF_INET </constant> )
If you asked for <constant>SOCK_DGRAM</constant>, you would be requesting a <emphasis>connectionless datagram delivery service</emphasis> (in our case, <acronym>UDP</acronym>). Se você pediu <constant> SOCK_DGRAM </constant> , você estaria solicitando um <emphasis> serviço de entrega de datagramas sem conexão </emphasis> (no nosso caso, <acronym>UDP</acronym> ).
If you wanted to be in charge of the low-level protocols (such as <acronym>IP</acronym>), or even network interfaces (e.g., the Ethernet), you would need to specify <constant>SOCK_RAW</constant>. Se você quisesse estar no comando dos protocolos de baixo nível (como <acronym>IP</acronym> ), ou mesmo das interfaces de rede (por exemplo, a Ethernet), você precisaria especificar <constant> SOCK_RAW </constant>
Finally, the <varname>protocol</varname> argument depends on the previous two arguments, and is not always meaningful. In that case, use <constant>0</constant> for its value. Finalmente, o <varname> protocolo </varname> argumento depende dos dois argumentos anteriores e nem sempre é significativo. Nesse caso, use <constant> 0 </constant> por seu valor
The Unconnected Socket O Soquete Desconectado
Nowhere, in the <function>socket</function> function have we specified to what other system we should be connected. Our newly created socket remains <emphasis>unconnected</emphasis>. Em nenhum lugar, no <function> soquete </function> função especificamos para qual outro sistema devemos estar conectados. Nossa soquete recém-criada permanece <emphasis> desconectado </emphasis>
This is on purpose: To use a telephone analogy, we have just attached a modem to the phone line. We have neither told the modem to make a call, nor to answer if the phone rings. Isso é feito de propósito: para usar uma analogia de telefone, acabamos de conectar um modem à linha telefônica. Não dissemos ao modem para fazer uma ligação nem para responder se o telefone tocar.
<varname>sockaddr</varname> <varname> sockaddr </varname>
Various functions of the sockets family expect the address of (or pointer to, to use C terminology) a small area of the memory. The various C declarations in the <filename>sys/socket.h</filename> refer to it as <varname>struct sockaddr</varname>. This structure is declared in the same file: Várias funções da família de soquetes esperam o endereço de (ou ponteiro para, usar a terminologia C) uma pequena área da memória. As várias declarações C no <filename> sys / socket.h </filename> referir-se a ele como <varname> struct sockaddr </varname> . Esta estrutura é declarada no mesmo arquivo:
/*
* Structure used by kernel to store most
* addresses.
*/
struct sockaddr {
unsigned char sa_len; /* total length */
sa_family_t sa_family; /* address family */
char sa_data[14]; /* actually longer; address value */
};
#define SOCK_MAXADDRLEN 255 /* longest possible addresses */

/*
* Structure used by kernel to store most
* addresses.
*/
struct sockaddr {
unsigned char sa_len; /* total length */
sa_family_t sa_family; /* address family */
char sa_data[14]; /* actually longer; address value */
};
#define SOCK_MAXADDRLEN 255 /* longest possible addresses */
Please note the <emphasis>vagueness</emphasis> with which the <varname>sa_data</varname> field is declared, just as an array of <constant>14</constant> bytes, with the comment hinting there can be more than <constant>14</constant> of them. Por favor, note o <emphasis> imprecisão </emphasis> com o qual o <varname> sa_data </varname> campo é declarado, assim como uma matriz de <constant> 14 </constant> bytes, com o comentário sugerindo que pode haver mais de <constant> 14 </constant> deles.
This vagueness is quite deliberate. Sockets is a very powerful interface. While most people perhaps think of it as nothing more than the Internet interface—and most applications probably use it for that nowadays—sockets can be used for just about <emphasis>any</emphasis> kind of interprocess communications, of which the Internet (or, more precisely, <acronym>IP</acronym>) is only one. Essa imprecisão é bastante deliberada. Sockets é uma interface muito poderosa. Embora a maioria das pessoas pense nisso como nada mais do que a interface da Internet - e a maioria dos aplicativos provavelmente a usa para isso hoje em dia - os soquetes podem ser usados ​​para praticamente <emphasis> qualquer </emphasis> tipo de comunicação entre processos, da qual a Internet (ou, mais precisamente, <acronym>IP</acronym> ) é apenas uma.

Loading…

New source string a year ago
Browse all component changes

Things to check

Mismatching line breaks

Number of new lines in translation does not match source

Reset

Mismatched semicolon

Source and translation do not both end with a semicolon

Reset

Trailing newline

Source and translation do not both end with a newline

Reset

Starting newline

Source and translation do not both start with a newline

Reset

Glossary

English Portuguese (Brazil)
No related strings found in the glossary.

Source information

Source string comment

(itstool) path: sect4/programlisting

Flags
no-wrap
Source string location
book.translate.xml:5238
String age
a year ago
Source string age
a year ago
Translation file
books/pt_BR/developers-handbook.po, string 874