这很好用
#!/usr/bin/python
import urllib
import socket
import os
s = socket.socket()
host = socket.gethostname()
port = 1514
s.bind((host, port))
s.listen(500)
c, addr = s.accept()
while True:
# Establish connection with client.
print 'Got connection from', addr
print c.recv(1024)
c.send('Recieved')
c.close()
raw_input()
但有一些事情:
当客户端断开连接时,程序将关闭。我想这样做,即使客户端断开连接,程序也会继续监听新的连接
如何让它无限期地等待连接?
答案 0 :(得分:2)
你可以在外面放一个while True
循环并尝试/除了内部连接关闭。换句话说,accept()
可以循环调用。
然而,"对"这样做的方法通常是使用Python Twisted实现的异步/事件驱动方法。这样,您可以同时接受来自多个客户端的连接,而不必等待一个连接关闭,然后再接受下一个连接。