python - 类型错误 : Connect() takes exactly one argument

标签 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)

我的脚本如下:

#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()

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

我也乐于接受有关更好的方法来实现这一目标的意见。

最佳答案

主机和端口必须是一个元组。

s.connect(('10.12.0.30', 6634))

请参阅 Python Socket documentation here 中示例的第二部分.

关于python - 类型错误 : Connect() takes exactly one argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19143091/

相关文章:

java - 检查有效的电子邮件地址,甚至捕获所有电子邮件主机

python - numpy 中的图像混合返回纯白色图像

python - AlchemyAPI 编译时出错

python - 将 UTF-16 转换为 UTF-8

sockets - 套接字接收(阻塞)失败并出现 errno EAGAIN - 资源暂时不可用

C# Socket.receive 连续接收0字节,循环不阻塞

python - 垂直打印字符串 - Python3.2

c - 套接字程序在接受时退出

networking - 套接字 API accept() 函数如何工作?

asp.net - IIS 只监听 127.0.0.1 而不是 0.0.0.0