我在s.sendto(data,addr)上遇到了python套接字的问题,我的代码如下
import socket
def Main():
host = '127.0.0.1'
port = 5000
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((host, port))
print("server started")
while True:
data, addr = s.recvfrom(1024)
print ("message from : "+ str(addr))
print ("from connected user : "+ str(data))
data = str(data.upper())
print ("sending : "+ str(data))
socket.sendto(data, addr)和结果
socket.sendto(data, addr)
AttributeError: module 'socket' has no attribute 'sendto'
s.close()
if __name__ == '__main__':
Main()在UdpClient,s.sendto正在工作
发布于 2016-09-18 22:29:49
您似乎输入了错误的socket.sendto(...语句: AttributeError被引发,因为方法sendto()是从socket.socket类的实例中调用的(就像在s中一样),而不是从socket模块本身调用。有关该语句含义的更多详细信息,请参阅here。
所以基本上需要将socket.sendto(...更改为s.sendto(...
此外,如果您想要检查任何x对象的属性(除了读取文档之外),您可以简单地检查它的x.__dict__字段,如here所述
干杯
https://stackoverflow.com/questions/39558499
复制相似问题