Esempio n. 1
0
 def _initServer(self):
     self.message("Server - initServer / threadId=" + str(int(QThread.currentThreadId())))
     
     try:
         self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     except socket.error as exc:
         raise ServerException("Socket creation failed: {0}".format(exc));
    
     try:    
         # Bind socket to ip 127.0.0.1 on port 1234
         self.socket.bind(('127.0.0.1', 1234));
     except socket.error as exc:
         self.socket.close();
         raise ServerException("Socket bind failed: {0}".format(exc));
     
     self.message("Server - Bind successfull")
     # Accept 1 connection 
     self.socket.listen(5);
Esempio n. 2
0
 def _serverLoop(self):
     threads = []
     threadId = 0
     connection = None;
     raddr = None;
     while True:
         try:
             # Wait for connection
             connection = self.socket.accept();
             raddr = connection[1];
         except socket.error as  exc:
             
             self.socket.close();
             self.message("Server - Join threads")  
             for t in threads:
                 t.wait()
             
             quitMutex.lock()
             quitCopy = self.quit
             quitMutex.unlock()
             
             # If the exception was intentional do not reraise it.
             if quitCopy==True and exc.errno==10004:
                 break;
             
             raise ServerException("Socket accept failed: {0}".format(exc));            
       
         self.message("Server - Incoming Connection by %s / threadId=%s" % (str(raddr), str(int(QThread.currentThreadId()))))
         newthread = ClientConnection(connection, self.message, threadId)
         newthread.start(QThread.HighPriority)
         
         threads.append(newthread)
         threadId = threadId + 1
     
     self.message("Server - Stop")
 def qtThreadId(self):
     return(format(int(QThread.currentThreadId()),"02x"))
Esempio n. 4
0
import sys

from PyQt5.QtWidgets import QApplication
from ServerUi.serverdialog import ServerDialog
from PyQt5.Qt import QDialog, QThread

if __name__ == '__main__':
    
    print("main: threadId="+str(int(QThread.currentThreadId())))
    app = QApplication(sys.argv)

    window = QDialog()
    w = ServerDialog()

    w.show()
    
    sys.exit(app.exec_())
    def run(self):
        try:
            # 这个目前我没弄明白这里写法
            self.handle = ctypes.windll.kernel32.OpenThread( win32con.PROCESS_ALL_ACCESS, False, int(QThread.currentThreadId()))
        except Exception as e:
            print('get thread handle failed', e)

        self.mains()
Esempio n. 6
0
 def stopServerClicked(self):
     self.message("ServerDialog.stopServerClicked - Start / threadId="+str(int(QThread.currentThreadId()))) 
     self.worker.stopServer();