在python中重启套接字服务器

时间:2013-02-25 22:57:38

标签: python sockets restart

我在python(OS X)中编写了一个简单的套接字服务器。我希望服务器在客户端终止通信时重新启动,以便客户端可以重新连接到服务器。看看下面的代码,我在“失去联系”IF中需要做些什么?我是Python的新手。

以下是代码:

import socket              
import os

s = socket.socket()       
host = socket.gethostname() 
port = 5555               


os.system('clear') 
print 'Server started'
print 'Waiting'

s.bind((host, port))       
s.listen(5)                 
c, addr = s.accept()     
print 'Contact', addr   
while True:
    msg = c.recv(1024)
    if not msg:
       s.close
       print "Lost contact"
       exit ()
    else: 
       print msg 

2 个答案:

答案 0 :(得分:0)

我不知道你是否找到了答案但我在寻找同样的问题时发现了这个问题。我试图重置服务器上的套接字,以便我可以连接到下一个客户端,所以我尝试使用socket.close()然后重新初始化整个套接字,但你实际上不需要在服务器上做任何事情只是在客户端使用socket.close()而另一个客户端可以连接而不会搞砸服务器(我意识到这可能现在对你没什么帮助,但是如果其他人做了我做了我想让他们知道的事情)

答案 1 :(得分:0)

如果我得到了你,你想在客户端断开连接时再次听,所以这应该做的事:

import socket              
import os

s = socket.socket()       
host = socket.gethostname() 
port = 5555               


os.system('clear') 
print 'Server started'
print 'Waiting'

def server():
  s.bind((host, port))       
  s.listen(5)                 
  c, addr = s.accept()     
  print 'Contact', addr   
  while True:
      msg = c.recv(1024)
      if not msg:
         s.close
         print "Restarting..."
         server()
      else: 
         print msg