Stream sockets
Last updated
Last updated
Com streams, o socket tem a mesma funcionalidade que datagrams, mas com a diferença que uma conexão é criada entre o pipe do client e o pipe do server.
Nesta conexão, é implementado um conjunto de procedimentos de pergunta-resposta para garantir que a mensagem é entregue em sua totalidade e na ordem correta.
Com isto, podemos dizer que stream sockets utilizam uma conexão, ao passo que datagram sockets não utilizam uma conexão.
Por padrão, o comando nc
trabalha com sockets de conexão, portanto para criarmos um socket stream basta removermos a opção -u
, opção esta que utilizamos para criar datagram sockets na última seção.
Note que agora, vemos uma mensagem "Listening on server.sock", que significa que o server está à espera de novas conexões no socket.
Para criar o client, o processo é o mesmo, não utilizando a opção -u
:
Até aqui, conseguimos entender UNIX sockets e a diferença entre datagram e stream.
So far so good, mas os processos estão sempre no mesmo computador. Indo um pouco mais além, seria possÃvel que 2 processos isolados em computadores distintos se comunicassem?
Sim, caso os computadores estejam conectados na mesma rede local (LAN) ou em uma rede global de computadores (Internet).
Um UNIX socket por si só não resolve IPC entre 2 processos em computadores distintos conectados numa rede local ou global.
Vamos, então, explorar outras opções de IPC para processos em computadores distintos nas próximas seções deste guia.