title: OSError: [Errno 22] Invalid argument in python3 socket
body: <p>I have a problem with socket programming in Python 3. I get an exception that is not making the program crash, but is just shown in terminal.</p>
  
  <p>Here is my code:</p>
  
  <pre><code>from PyQt4 import QtCore, QtGui
  from imigui import Ui_MainWindow
  
  class imiserv(QtGui.QMainWindow):
  
      send_msg = pyqtSignal('QString', 'QString')
  
      def __init__(self, parent=None):
          QtGui.QWidget.__init__(self, parent)
          self.ui = Ui_MainWindow()
          self.ui.setupUi(self)
          self.ui.Sport_lineEdit.setMaxLength(5)
          self.ui.Sconnect_pushButton.clicked.connect(self.serv)
  
          self.send_msg.connect(self.write_msg)
  
      def write_msg(self, lbl_msg= None, txt_msg= None):
          if lbl_msg:
              self.ui.C_label.setText(lbl_msg)
          if txt_msg:
              self.ui.Clog_textEdit.setText(txt_msg)
  
      def serv(self):
          MY_LOCK = threading.Lock()
          class CountT(threading.Thread):
              def __init__(self, parent):
                  threading.Thread.__init__(self)
                  self._parent= parent
  
              def run(self):
                  MY_LOCK.acquire()
                  self._parent.send_msg.emit("Waiting connections","")
                  while True:
                      cliconn, (addr, remoport)= self._parent.clis.accept()
                      clirecmsg= str(cliconn.recv(1024)
                      self._parent.send_msg.emit("{0}:{1} is connected.".format(addr, remoport), "{0}:{1}".format(addr, remoport)
                      cliconn.close()
  
                  MY_LOCK.release()
  
          try:
              self.clis= socket.socket(socket.AF_INET, socket.SOCK_STREAM)
              self.clis.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
              clierhost= str(self.ui.Sip_lineEdit.text())
              clierport= int(self.ui.Sport_lineEdit.text())
              self.clis.bind((clierhost, clierport))
              self.clis.listen(5)
              a= CountT(self)
              a.daemon= True
              a.start()
          except socket.error as err:
              err= str(err)
              print(err)
  </code></pre>
  
  <p>And here are the errors that happened decussate (this error show only in linux os):</p>
  
  <pre><code>Exception in thread Thread-1:
  Traceback (most recent call last):
    File "/usr/lib/python3.3/threading.py", line 637, in _bootstrap_inner
      self.run()
    File "imiclilap.py", line 34, in run
      cliconn, (addr, remoport)= self._parent.clis.accept()
    File "/usr/lib/python3.3/socket.py", line 135, in accept
      fd, addr = self._accept()
  OSError: [Errno 22] Invalid argument
  
  Exception in thread Thread-2:
  Traceback (most recent call last):
    File "/usr/lib/python3.3/threading.py", line 637, in _bootstrap_inner
      self.run()
    File "imiclilap.py", line 34, in run
      cliconn, (addr, remoport)= self._parent.clis.accept()
    File "/usr/lib/python3.3/socket.py", line 135, in accept
      fd, addr = self._accept()
  OSError: [Errno 22] Invalid argument
  </code></pre>