我正在尝试接收来自客户端通过套接字发送的消息。以下是我用来接收该消息的代码
def recieveData(serverPort):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s
s.bind((socket.gethostbyname(socket.gethostname()), serverPort)) #server bind to port
s.listen(5) #listen for connections
while True:
c, addr = s.accept() #accept client connection
dataRecieved = c.recv(1024).decode() #get data sent from client
c.close()
return dataRecieved
这在我的Windows机器上可以使用,但是在我的Mac上不返回任何内容。我还在Mac上注意到未使用变量addr
,但在Windows计算机上使用了该变量。还有以下
print(socket.gethostbyaddr(socket.gethostbyname(socket.gethostname())))
在我的Mac上产生以下错误,但在Windows上可以使用
socket.herror:[Errno 1]未知主机`
这是为什么?如果我得到未使用addr
的警告,我认为它会起作用。