套接字服务端,启动指定客户端 通讯
2016-05-16 10:47
357 查看
#coding:utf-8 import threading import os, os.path, sys from Cura.util import profile import win32process, win32event import socket #coding:utf-8 import threading import os, os.path, sys import win32process, win32event import socket import time import errno serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) serverPortNr = 49677 try: serversocket.bind(('127.0.0.1', serverPortNr)) except: print("Failed to listen on port: %d" % (serverPortNr)) exit(110) def loadStl(filename, sceneView): try: filenames = [filename] profile.putPreference('lastFile', filenames[0]) sceneView.loadFiles(filenames) except Exception, e: pass def socketConnectionThread(sock, sceneView): while True: try: data = sock.recv(1024) except: data = '' if len(data) == 0: sock.close() return print data uro = ("%s" % data) if (uro.find(":") > -1): print "load data" index = uro.find(":") path = uro[index - 1:len(uro)] loadStl(path, sceneView) time.sleep(1) command = 'taskkill /f /im cefclient.exe' os.system(command) break def socketListenThread(serversocket, sceneView, serverPortNr): serversocket.listen(1) print 'Listening for engine communications on %d' % (serverPortNr) while True: try: sock, address= serversocket.accept() thread = threading.Thread(target=socketConnectionThread, args=(sock,sceneView)) thread.daemon = True thread.start() except socket.error, e: if e.errno != errno.EINTR: raise def runexe(mpath,mexe): command = 'taskkill /f /im cefclient.exe' os.system(command) time.sleep(1) try : hProcess, hThread, dwProcessId, dwThreadId = win32process.CreateProcess(os.path.join(mpath, mexe), '', None, None, 0, win32process.CREATE_NO_WINDOW, None , mpath, win32process.STARTUPINFO()) except Exception, e: print "Create Error!" def showDlg(sceneView): mpath = os.path.join(os.path.dirname(__file__), "../../Release") mexe = "cefclient.exe" thread0 = threading.Thread(target=runexe, args=(mpath,mexe,))#启动浏览器 thread0.daemon = True thread0.start() thread = threading.Thread(target=socketListenThread, args=(serversocket, sceneView,serverPortNr) )#启动服务器端,坚挺浏览器连接 thread.daemon = True thread.start()
相关文章推荐
- 使用Sublime Text搭建python调试环境
- css3阴影box-shadow学习
- PAT (Advanced Level) 1015. Reversible Primes (20)
- linux检测文件夹是否存在
- 编程方式 获取ApplicationContext实例
- 联通公司员工工资存折遭曝光!
- 调用svc报错 httpwebrequest_webexception_remoteserver
- 手动添加Pch全局引用文件
- Tomcat内存配置、参数说明
- Activity的启动方式和flag详解
- LISP
- 一条网址都由哪几部分组成都是什么意思
- 【好程序员特训营】- 路新艺-Java设计模式之简单工厂模式
- postgresql源码包安装
- Win10上 MinGW的安装配置 过程记录
- springmvc学习记录----springmvc的文件上传和下载
- -webkit-tap-highlight-color
- SQL添加删除、查询表、字段说明
- 心灵鸡汤之20160516带残缺的美更珍贵
- 【Linux开发】内核模块简介