我有两个python(python 3)程序,一个客户端和一个服务器。
Client.py:
import socket
import time
clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientsocket.connect(('192.168.0.18', 8087))
clientsocket.send(b'a')
time.sleep(0.05)
clientsocket.close()
Server.py:
import socket
import time
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind(('', 8087))
serversocket.listen(5)
connection, address = serversocket.accept()
b = connection.recv(1)
time.sleep(0.1)
serversocket.close()
connection.shutdown(socket.SHUT_WR)
connection.close()
print(b)
所有这一切都是连接客户端和服务器,然后发送char' a'从客户端到服务器。如果我在同一台计算机上同时运行它们,它可以正常工作,并且服务器会打印出一个' a。但是,如果我在一台计算机上运行服务器而在另一台计算机上运行客户端(两者都连接在同一个无线网络上),它们会分别停留在clientsocket.connect和serversocket.accept上(并最终超时)。通过运行ifconfig获取IP地址,并在“添加”之后选择该号码。
如何解决此问题?防火墙阻止我的计算机连接吗?
我知道stackoverflow上还有其他类似的问题,但没有一个能够准确描述这种情况,答案对我没有帮助。