2011-12-04 4 views
0

私はソケットについて知りたいと思っています。私はcan not ip、portに接続します。 これは私が得たスクリプトです:ソケットは-pythonに接続しようとするとエラーが表示されます

スティアンのソケット・テスト・ツール

import socket 

print "send request to website to check if sockets work right" 
ip = raw_input("website ip: ") 
port = raw_input("website port: ") 
socket.connect(ip, port) 
tosend = "this is a test" 
currVal = 0 
while currVal < 1: 
    socket.send(tosend) 
    print "1 sockets sent..." 
    currrVal += 1 
print "Done sending sockets. This hopefully worked" 

はPythonコードに何か問題ありますか? これはipv4またはipv6でのみ機能しますか?または両方で動作しますか? IMはGETTING

ERROR:

C:\Users\Swipper\Documents\Python\sockets>sock.py 
send request to website to check if sockets work right 
website ip: 127.0.0.1 
website port: 
Traceback (most recent call last): 
    File "C:\Users\Swipper\Documents\Python\sockets\sock.py", line 8, in <modu 
le> 
    socket.connect(ip, port) 
AttributeError: 'module' object has no attribute 'connect' 

誰かが答えを知っている願っています。

PS:私はpython 2.7を使用します。

-stian

+2

あなたの質問は曖昧です。取得した正確なエラーを含めてください。 –

答えて

2

あなたは最初のソケットオブジェクトを作成する必要があります。

s = socket.socket() 
s.connect((ip, int(port)) 

の代わり:

socket.connect(ip, port) 

を次にs.sendを使用する、など

3

あなたは呼んでいますモジュールのオブジェクトではなく.connect()。最初にソケットオブジェクトをインスタンス化する必要があります。これは通常socket.socket()によって実現されます。返されたオブジェクトに対して.connect()を呼び出すことができます。

s = socket.socket() 
s.connect((ip, int(port)) 
+0

ポートは必須かオプションか。 – Stian

+0

もちろん、必須です。どのように他のどのポートに接続するのかPythonは知っていますか?非常にまれなケース(非TCP/UDPプロトコル)では、おそらくこれを無視するかもしれませんが、それはあなたのケースではないでしょう。 –

0

接続コールの引数はタプルではいけませんか?

socket.connect((ip, port)) 

sendコールの戻り値を確認してください。

また、何かを受け取らない限り、相手側の接続が閉じているかどうかを知ることはできません。受信が接続が閉じられているかどうかを知る唯一の確実な方法です。

編集:他の人と同様に、ソケットオブジェクトを作成する必要があります。

+0

あなたはこのエラーを読めますか? –

+0

@TomvanderWoerdtいいえ、私は答えを投稿した後まで編集を見ませんでした。しかし、私はまだ私が良い点を2つ挙げていると感じています。 –

関連する問題