私はpythonが初めてです:)永続的なソケットを作成したいと思います。ファイル記述子を使用してこれを実行しようとしました。私が試したのは:
ソケットソケット接続を開く
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ファイル記述子番号を取得する
fd = s.fileno()
ファイル記述子を I/O として開く
os.open(fd)
しかし、私は得るOSError: [Errno 9] Bad file descriptor
私はPythonが初めてで、おそらく実装が間違っていると言いました。しかし、より簡単な例を試してみましたos.close(s.fileno())
が、同じエラーが発生しましたOSError: [Errno 9] Bad file descriptor
ruby で書かれた例を見つけてテストしたところ、うまくいきました。Ruby で Unix の永続的なネットワーク ソケットを作成するにはどうすればよいですか?
誰でも私のためにこれをPythonに書き込むことができますか?私が達成したいのは:
私がやりたいことを理解していただければ幸いです。アドバイスありがとう!
あなたの応答の後、私は次のコードを試しました:
1
#!/usr/bin/python
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('google.com', 80))
s.send('GET /\n')
print s.fileno()
2
#!/usr/bin/python
import os
import sys
fd = int(sys.argv[1])
os.read(fd, 1024)
そして、エラーはOSError: [Errno 9] Bad file descriptor
問題が何であるかは確かです(私はphp開発者です)。PHPと同じように、Pythonはスクリプトを閉じた後にゴミを削除します。これをpythonで解決するには?