1

Python 1.6(私が見つけた唯一のpython .pet)をインストールした後、Lucid puppy 5.2を実行している古いラップトップでいくつかのIRCボットを実行してテストすると、数回実行するたびに、次の奇妙なエラーが発生します。

Traceback (most recent call last):
    File "bot.py!, line 77, in <module>
       irc.connect ( (irc_network, irc_port) ) 
    File "<string>", Line 1, in connect
socket.gaierror: [Errno -3] Temporary failure in name resolution

これは、このエラーが発生しているコードのセクションです。

irc_network = 'irc.esper.net'
irc_port = 5555
irc = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
irc.connect ( ( irc_network, irc_port ) )

私はsocketこのためのモジュールを使用しているだけで、サードパーティによるインポートは一切ありません。クイックグーグルが私にとって何も見つけなかったので、私はこのエラーが何であるか、そしてそれが何を意味するのか分かりません。

紫色の事実は、何も変更せずにボットを再試行するだけで、正常に実行できるということです。

お時間をいただきありがとうございます。

4

2 に答える 2

1

私が考えることができるのは、DNSリゾルバーが正常に機能しないことだけです。ここで、このコードは正常に実行されます。


ところで(コメントとして)、置き換えた場合

irc = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
irc.connect ( ( irc_network, irc_port ) )

irc = socket.create_connection( ( irc_network, irc_port ) )

今後数十年で消滅する古いプロトコルに制限されないため、より将来性があります。

于 2012-07-06T09:52:54.333 に答える
0

私はちょうど同じ問題を抱えていました。DNSがホスト名を解決できなかったことが判明しました。ホストにhost.node1.node2ではなく名前だけを付けたのはお粗末です。したがって、ホスト名を調べてください。それが機能しない場合は、より具体的にする必要があります。基本的には、DNSAまたはQuadAレコードを探し、DNSが解決できる名前を使用します。もう1つの可能性は、DNSリストがまだないことです。

于 2013-04-03T05:53:42.290 に答える