我正在尝试在 Python 2.7 中创建一个简单的点对点网络。问题是,我似乎无法在两台机器之间建立连接,它们都充当服务器和客户端。当一个是服务器而另一个是客户端时,我可以让它工作,但当它们都是,两者都是。我需要创建 2 个套接字吗?另外我正在使用TCP进行连接。
更新:
import socket, sys # Import socket module
s = socket.socket() # Create a socket object
host = socket.gethostname() # Get local machine name
port = 12345 # Reserve a port for your service.
s.bind((host, port)) # Bind to the port
if sys.argv[1] == "connect":
host = sys.argv[2]
s.connect((host, port))
s.close
else:
s.listen(5) # Now wait for client connection.
while True:
c, addr = s.accept() # Establish connection with client.
print 'Got connection from', addr
c.send('Thank you for connecting')
c.close()
代码不是很好,因为对于作为客户端连接的人,他们必须使用参数“connect”,后跟第二台机器的主机名或 IP。我无法让两者同时连接并相互服务。