2017-04-15 14 views
0

問題は、シンプルなクライアントを作成するためにこのコードを実行すると、このようなエラーが発生することです。単純なTCP_CLIENTを作成する際の問題

import socket 

target_host = "www.google.com" 
target_port = 80 

# ➊ create a socket object 
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 

# ➋ connect the client 
client.connect((target_host,target_port)) 

# ➌ send some data 
client.send("GET/HTTP/1.1\r\nHost: google.com\r\n\r\n") 

# ➍ receive some data 
response = client.recv(4096) 

print response 

私が最初にAF_INETSOCK_STREAMパラメータ➊とソケットオブジェクトを作成します。 AF_INETパラメータは、標準のIPv4アドレスまたはhost_nameを使用することを示しており、SOCK_STREAMは、これがTCPクライアントであることを示しています。その後、クライアントをサーバーに接続し、データを送信します。最後のステップは、いくつかのデータを受け取り、応答をプリントアウトすることです。私は トレースバック(最新の呼び出しの最後)を実行すると、このエラーが発生し

:問題です

File "C:\Users\engin\Desktop\TCP_client.py", line 10, in <module> 
client.send("GET/HTTP/1.1\r\nHost: google.com\r\n\r\n") 
TypeError: a bytes-like object is required, not 'str' 

何?

答えて

0

Python3でPython2-Codeを実行しようとしていますが、これはprint-statementのためにSyntaxErrorが最初に発生します。次に、文字列ではなくバイトを送信する必要があります。

client.send(b"GET/HTTP/1.1\r\nHost: google.com\r\n\r\n") 
+0

ありがとうございます@ダニエル。これはPython 2.7で動作しています。 –

関連する問題