Mac OS X 10.6 で Python ネットワーク プログラミングを試しています。Homebrew によってインストールされた Python 2.7 を使用しており、UDP クライアントとサーバーを含むFoundations Of Python Network Programming (すばらしい本) から単純なスクリプトを実行しようとしていますが、変数を使用しようとすると前述の AttribuiteError が発生します。ソケットモジュール。スクリプトは次のとおりです。
#! /usr/bin/env python
import socket, sys
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
MAX = 65535
PORT = 1060
if sys.argv[1:] == ['server']:
s.bind(('127.0.0.1', PORT))
print('Listening at', s.getsockname())
while True:
data, address = s.recvfrom(MAX)
print('The client at ', address, ' says ', repr(data))
s.sendto('Your data was %d bytes' % len(data), address)
elif sys.argv[1:] == ['client']:
print('address before sending: ', s.getsockname())
s.sendto('This is my message', ('127.0.0.1', PORT))
print('address after sending: ', s.getsockname())
data, address = s.recvfrom(MAX)
print('The server at ', address, ' says ', repr(data))
else:
print >>sys.stderr, 'usage: udp_local.py client|server'
経由でこのスクリプトを実行python script.py server
すると、次のエラーが発生します。
Traceback (most recent call last):
File "udp_local.py", line 5, in <module>
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
AttributeError: 'module' object has no attribute 'AF_INET'
Python コンソールを試してみましたが、実行後import socket
、モジュール変数を取得できないようです。私は広範囲にグーグルで検索しましたが、この同じ問題でまだ何も出ていません。誰かがそれが何であるかについての洞察を持っていますか? 念のため、次の出力を示しenv python
ます。
Python 2.7.1 (r271:86832, Jul 10 2011, 10:39:45)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin