Python 如何正确调用socket模块

How to call socket module properly in Python

我正在构建一个简单的 UDP 客户端,但是,我收到一条错误消息 "socket is not callable"。我检查了代码,它可以找到问题

我尝试使用 "from socket import *" 导入模块,但没有成功。

import socket
serverName = 'hostname'
serverPort = 1200
clientSocket = socket(socket.AF_INET, socket.SOCK_DGRAM)
message = 'Testing the system'
clientSocket.sendto(message, (serverName, serverPort))
modifiedMessage, serverAddress = clientSocket.recvfrom(2048)
print(modifiedMessage)
clientSocket.close()

你需要像这样从套接字模块导入套接字

import socket
from socket import socket as sk
serverName = 'hostname'
serverPort = 1200
clientSocket = sk(socket.AF_INET, socket.SOCK_DGRAM)

等等

我认为您已将程序命名为 socket.py 或将程序存储在包含 socket.py 的文件夹中。重命名您的文件或删除它们

您的代码应该可以工作,您只需更改一下

clientSocket = socket(socket.AF_INET, socket.SOCK_DGRAM)

clientSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

您正在尝试将输入提供给模块 (socket) 而不是模块内部的函数 (socket.socket)