Criar Soquete Nomeado Unix a Partir da Linha de Comando

26

Existe um comando semelhante ao mkfifo, mas para sockets de domínio?

    
por benmmurphy 10.02.2012 / 18:01

3 respostas

19

Não existe um equivalente exato de mkfifo para socket, ou seja, não existe um comando que apenas crie um socket "pendente". Isto é por motivos históricos: a função bind () do servidor, aquela que cria um nome de socket / inode no sistema de arquivos, falha se o nome já estiver sendo usado. Em outras palavras, o servidor não pode operar em um soquete pré-existente.

Então, se você tivesse criado o soquete anteriormente, ele precisaria ser removido pelo servidor de qualquer maneira primeiro. Nenhum benefício Como você vê com a resposta de Gregory, você pode criar um soquete se você mantiver um servidor para ele, como o netcat. Depois que um servidor é removido, o soquete antigo desaparece. Um novo servidor tem um novo soquete, e todos os clientes precisam reconectar-se, apesar do nome do soquete ser idêntico.

    
por 10.02.2012 / 23:28
14

Os programas netcat (nc) e similares mais recentes (socat até onde eu sei) têm opções de soquete de domínio.
Senão, você pode dar uma olhada no ucspi-unix

    
por 10.02.2012 / 19:03
2

Você pode usar python:

python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('/tmp/test.sock')"

Além disso, C, consulte esta resposta .

    
por 31.05.2018 / 10:44