2014-12-07 3 views
0

Я написал этот код, который правильно работает в Windows, но дает несколько ошибок на моем Ubuntu 12.04. Хотя код выполняет хорошо свою функцию, но его дали некоторые ошибки, которые я не хочу .. Пожалуйста, помогите мне в этом отношении ..Ошибка Traceback в коде Python при запуске Ubuntu

from socket import * 
from threading import Thread 
from Crypto.Cipher import AES 
import os 
import base64 
import timeit 
# Receiveing + Decoding the Information, symmetrical key isi 

def clientHandler(): 
    conn, addr = s.accept() 
    print addr, "is connected" 
    while 1: 
     data = conn.recv(1024) 
     if not data: 
      break 
     print "Metering Data Received: Processing..." 
     #creating decoding unpadding 
     PADDING ="{" 
     DecodeAES = lambda c, e: c.decrypt(base64.b64decode(e)).rstrip(PADDING) 
     #creating a default key 
     obj2 = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456') 
     decrypted_data = DecodeAES(obj2,data) 
     print decrypted_data 


HOST = "" #localhost 
PORT = 12000 


s = socket(AF_INET, SOCK_STREAM) 
s.bind((HOST, PORT)) 
s.listen(4) 

print "Server is runnig" 
#Thread(target=clientHandler).start() 
#Thread(target=clientHandler).start() 
#Thread(target=clientHandler).start() 

for i in range(4): 
    Thread(target=clientHandler).start() 

s.close() 

И это то, что на терминале Ubuntu появляется, но не на Windows, на основе ...

Server is runnig 
Exception in thread Thread-4: 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner 
    self.run() 
    File "/usr/lib/python2.7/threading.py", line 504, in run 
    self.__target(*self.__args, **self.__kwargs) 
    File "chat_encrypt.py", line 10, in clientHandler 
    conn, addr = s.accept() 
    File "/usr/lib/python2.7/socket.py", line 202, in accept 
    sock, addr = self._sock.accept() 
    File "/usr/lib/python2.7/socket.py", line 170, in _dummy 
    raise error(EBADF, 'Bad file descriptor') 
error: [Errno 9] Bad file descriptor 
+0

дубликат http://stackoverflow.com/questions/16382899/python-socket-socket-error-bad-file-descriptor http://stackoverflow.com/questions/15958026/getting-errno-9-bad- file-descriptor-in-python-socket http://stackoverflow.com/questions/19624684/oserror-errno-9-bad-file-descriptor-in-python-3 – kdopen

ответ

1
for i in range(4): 
    Thread(target=clientHandler).start() 

s.close() 

последняя строка закрывает сокет ... каждый поток затем пытается «принять».

Смежные вопросы