netcatや他のプログラムを使用してテキストベースのサーバーを作成しますか? [閉鎖]

netcatや他のプログラムを使用してテキストベースのサーバーを作成しますか? [閉鎖]

私の考えは、接続するとユーザーが対話できるPythonスクリプトを実行するnetcatサーバーを作成することです。たとえば、スクリプトは数字を要求し、その数字を3乗して出力します。これはどのように達成できますか?プログラムを実行し、接続されたユーザーに出力をリダイレクトし、リアルタイムで対話できるようにするにはどうすればよいですか。

擬似出力:

$ nc 192.168.1.13  
Input a number: 2  
8  
(end)  

スクリプト:

print(str(int(input("Input a number: "))**3))

答え1

socat TCP-LISTEN:50011,fork EXEC:'/path/to/script',stderr,pty,echo=0

メモ:

  • 50011リスニングポートなので直接選択できます。後で接続してください(例:)nc 127.0.0.1 50011
  • forksocat多くの顧客に(同時に)サービスを提供できます。
  • そうでない場合は、実際に入力を盲目的に提供した後にのみインポートするのがpty一般的です。Input a number:
  • 私のテストによると、+socatで終了すると、ポートはしばらく使用できます。これが問題になったら(たとえば)考えてみてください。CtrlCreuseaddrTCP-LISTEN:50011,fork,reuseaddr

関連情報