TypeError:Connect()只接受一个参数

Mie*_*din 5 python sockets tcp

我正在创建一个非常简单的python脚本,旨在打开TCP套接字并发送一些JSON数据.(我是python的新手)

我在运行脚本时收到以下错误:

Traceback (most recent call last):
  File "JSONTest.py", line 17, in <module>
    s.connect('10.12.0.30', 6634)
  File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
TypeError: connect() takes exactly one argument (2 given)
Run Code Online (Sandbox Code Playgroud)

我的脚本如下:

#Imports
import socket
import json
import time

data = "{\"method\": \"echo\",\"id\": \"echo\",\"params\": []}"

#Create socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

#Establish TCP session via IP address and port specified
s.connect('10.12.0.30', 6634)

#Send JSON to socket
s.send(json.dumps(data))

#Wait for response and print to console
result = json.loads(s.recv(1024))
#print str(result)

#Exit
s.close()
Run Code Online (Sandbox Code Playgroud)

我检查了套接字库上的文档,connect()只列出了一个参数,即所需的目标IP地址.所以,我的问题是,如果我还指定我的TCP端口,如果connect()方法不允许我在那里输入它,我该如何做?

我也愿意提供更好的方法来实现这一目标.

RyP*_*eck 13

主机和端口必须是元组.

s.connect(('10.12.0.30', 6634))
Run Code Online (Sandbox Code Playgroud)

请参阅Python Socket文档中的示例的第二部分.