Executando um script python em um soquete com o ncat?

1

Eu quero fazer um script python executado em um soquete do servidor na LAN. Eu escrevi um script de adivinhação de números e quero fazê-lo rodar no socket para que outros clientes possam brincar com ele conectando-se à porta (digamos, 1234). Eu sei para conseguir isso por programação de soquete de python. Mas esta questão é perguntar por que isso falha?

ncat 192.168.0.108 -lvp 1234 -e /usr/bin/python3.5 number_game.py

o roteiro: (idiota: P)

#!/usr/bin/python3.5
import random
num=random.randint(1,20)
flag=0
print("Welcome to the game...")
for i in range(1,7):
    print("Take a guess")
    guess=int(input())
    if guess > num:
        print("Way too high")
    else:
        if guess < num:
            print("Way too low")
        else:
            flag=1
            break;
if flag == 1:
    print("You made it in "+str(i)+" attempts")
else:
    print("better luck next time")

o erro:

Ncat: Version 7.31 ( https://nmap.org/ncat ) Ncat: Got more than one port specification: 1234 number_game.py. QUITTING.

    
por juggernauthk108 02.01.2017 / 12:20

1 resposta

4

Solução

Você está tentando escutar na porta 1234 e se conectar à máquina com o IP 192.168.1.108 no mesmo tempo.

Você não pode fazer isso, ou escuta a conexão usando isto:

ncat -lvp 1234 -e "/usr/bin/python3.5 number_game.py"'

ou você inicia a conexão com a máquina desejada usando isto:

ncat -v -e "/usr/bin/python3.5 number_game.py" 192.168.0.108 1234

Nota

Quando você usa ncat (ou nc ) para iniciar a conexão, é necessário manter os parâmetros IP (ou hostname ) e port os últimos.

Veja a sinopse de ncat no manual: ncat [OPTIONS...] [hostname] [port]

    
por 02.01.2017 / 14:19