2016-04-24 179 views
2

我想在服务器和客户端之间建立连接,所以服务器向客户端发送一个字符串。Python服务器名称错误:未定义全局名称'SocketError'

这里是服务器:

import socket 

def Main(): 
    host = '190.176.141.23'#ip changed 
    port = 12345 

    while True: 

     s = socket.socket() 
     s.bind((host,port)) 

     s.listen(1) 
     c, addr = s.accept() 
     print "Connection from: " + str(addr) 


     command = c.recv(1024) 

     if command == 'GIVETEXT': 
      c.send('test') 

     try: 
      c.close() 
      sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 
     except SocketError as e: 
      if e.errno != errno.ECONNRESET: 
       raise 
      pass 

if __name__ == '__main__': 
    Main() 

这里是我做的客户端:

import socket 

class Client(object): 

    def __init__(self, *args): 
     self.s = socket.socket() 

    def sent(self, host, port): 
     self.s.connect((host, port)) 
     self.s.send('GIVETEXT') 
     self.Text = self.s.recv(1024) 
     print self.Text 
     self.s.close 
     return self.Text 

不用说,我在另一段代码执行的方法,它的工作。但之后,服务器崩溃,与错误信息:

NameError: global name 'SocketError' is not defined 

回答

3

它是socket.error;不是SocketError。将您的except行更改为:

except socket.error as e: 
相关问题