def socket_server( input_str ): os.system( "echo %d >>pid_repo" % os.getpid() ) # store the pid host = fuckargs.get( "host" ) # Symbolic name meaning all available interfaces port = int( fuckargs.get("port") ) # Arbitrary non-privileged port s = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) #定义socket类型,网络通信,TCP s.bind( (host, port) ) #套接字绑定的IP与端口 s.listen( 5 ) #开始TCP监听 input_str.value = "" while True: conn, addr = s.accept() #接受TCP连接,并返回新的套接字与IP地址 # print 'Connected by', addr #输出客户端的IP地址 try: while True: data=conn.recv(1024) #把接收的数据实例化 # 如果不为空 if len(data) > 11: # 阻塞与等待一下吧,目前折中的做法吧 while 1: will_input_str = input_str.value + data + "$_$" if len( will_input_str ) < 40000: break input_str.value = will_input_str conn.sendall( "done" ) ### 这里暂时约定做“伪回应” except: conn.close() #关闭连接
def socket_server( whether, pre_whether, now_status, action ): on_off_dict = { 0: "off", 1: "on" } action_dict = { "11": "released", \ "10": "pressing", \ "00": "pressed", \ "01": "releasing" } os.system( "echo %d >>pid_repo" % os.getpid() ) # store the pid host = fuckargs.get( "host" ) # Symbolic name meaning all available interfaces port = int( fuckargs.get("port") ) # Arbitrary non-privileged port s = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) #定义socket类型,网络通信,TCP s.bind( (host, port) ) #套接字绑定的IP与端口 s.listen( 5 ) #开始TCP监听 while True: conn, addr = s.accept() #接受TCP连接,并返回新的套接字与IP地址 # print 'Connected by', addr #输出客户端的IP地址 try: while True: data=conn.recv(1024) #把接收的数据实例化 res = { "on_off_status" : on_off_dict.get(now_status.value), \ "now_result": whether.value, \ "pre_result": pre_whether.value, \ "action": action_dict.get(action.value) } res = json.dumps( res ) conn.sendall( res ) except: conn.close() #关闭连接
def socket_server( result_str ): os.system( "echo %d >>pid_repo" % os.getpid() ) # store the pid host = fuckargs.get( "host" ) # Symbolic name meaning all available interfaces port = int( fuckargs.get("port") ) # Arbitrary non-privileged port s = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) #定义socket类型,网络通信,TCP s.bind( (host, port) ) #套接字绑定的IP与端口 s.listen( 5 ) #开始TCP监听 while True: conn, addr = s.accept() #接受TCP连接,并返回新的套接字与IP地址 # print 'Connected by', addr #输出客户端的IP地址 try: while True: data=conn.recv(1024) #把接收的数据实例化 conn.sendall( result_str.value ) except: conn.close() #关闭连接
s.bind( (host, port) ) #套接字绑定的IP与端口 s.listen( 5 ) #开始TCP监听 while True: conn, addr = s.accept() #接受TCP连接,并返回新的套接字与IP地址 # print 'Connected by', addr #输出客户端的IP地址 try: while True: data=conn.recv(1024) #把接收的数据实例化 if data == "whether": res = whether.value elif data == "sum": res = str( sum(sum_list)/2.0 ) else: res = "-1" conn.sendall( res ) except: conn.close() #关闭连接 # Main process if __name__ == "__main__": usb_arg, bits_arg = fuckargs.get("usb"), int( fuckargs.get("bits") ) chr = multiprocessing.Value('c', '0') sum_list = multiprocessing.Array( 'i', [1]*200 ) os.system( "echo %d >>pid_repo" % os.getpid() ) # store the pid p_serial = multiprocessing.Process( target=get_serial_info, args=(chr, sum_list, usb_arg, bits_arg) ) p_socket = multiprocessing.Process( target=socket_server, args=(chr, sum_list,) ) p_serial.start() p_socket.start()
# socket server def socket_server( result_str ): os.system( "echo %d >>pid_repo" % os.getpid() ) # store the pid host = fuckargs.get( "host" ) # Symbolic name meaning all available interfaces port = int( fuckargs.get("port") ) # Arbitrary non-privileged port s = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) #定义socket类型,网络通信,TCP s.bind( (host, port) ) #套接字绑定的IP与端口 s.listen( 5 ) #开始TCP监听 while True: conn, addr = s.accept() #接受TCP连接,并返回新的套接字与IP地址 # print 'Connected by', addr #输出客户端的IP地址 try: while True: data=conn.recv(1024) #把接收的数据实例化 conn.sendall( result_str.value ) except: conn.close() #关闭连接 # Main process ser = serial.Serial( fuckargs.get("usb"), int( fuckargs.get("bits") ) ) string_dict = multiprocessing.Array( "c", '{"temp":-10000, "humi":-10000, "tol":-20000}') os.system( "echo %d >>pid_repo" % os.getpid() ) # store the pid p_serial = multiprocessing.Process( target=get_serial_info, args=(string_dict,) ) p_socket = multiprocessing.Process( target=socket_server, args=(string_dict,) ) p_serial.start() p_socket.start()
pass # socket server def socket_server( distance ): os.system( "echo %d >>pid_repo" % os.getpid() ) # store the pid host = fuckargs.get( "host" ) # Symbolic name meaning all available interfaces port = int( fuckargs.get("port") ) # Arbitrary non-privileged port s = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) #定义socket类型,网络通信,TCP s.bind( (host, port) ) #套接字绑定的IP与端口 s.listen( 5 ) #开始TCP监听 while True: conn, addr = s.accept() #接受TCP连接,并返回新的套接字与IP地址 # print 'Connected by', addr #输出客户端的IP地址 try: while True: data=conn.recv(1024) #把接收的数据实例化 res = str( distance.value ) conn.sendall( res ) except: conn.close() #关闭连接 # Main process if __name__ == "__main__": num = multiprocessing.Value('d', 0.00) os.system( "echo %d >>pid_repo" % os.getpid() ) # store the pid p_serial = multiprocessing.Process( target=get_serial_info, args=(num,fuckargs.get("usb"), int( fuckargs.get("bits") ),) ) p_socket = multiprocessing.Process( target=socket_server, args=(num,) ) p_serial.start() p_socket.start()