zoukankan      html  css  js  c++  java
  • windows监听socket和标准输入

    原来的代码

        def input_command(self):
            msg = raw_input('
    Please input the command:')
            remote_id = raw_input("Please input remote id:")
            msg_send = "%s||%s" % (remote_id, msg)
            self.client_socket.send(msg_send)
            self.flag = 1
            #todo 这里输入完毕后socket会关闭,找到原因后写到博客园上
    
        def socket_handler(self):
            while 1:
                if self.flag == 0:#如果没有输入就等待输入,否则等待网络返回
                    self.input_command()
                rlist = [self.client_socket]  # 接收列表
                read_list, write_list, error_list = select.select(rlist, [], [], 2)
                for sock in read_list:
                    # incoming message from remote server
                    if sock == self.client_socket:
                        data = sock.recv(4096)
                        if not data:
                            print '
    Disconnected from chat server'
                            sys.exit()
                        else:
                            # print data
                            self.process_data_return(data)
                            self.prompt()

    其实我也不太懂为什么,把输入放到select后边就可以了

        def input_command(self):
            msg = raw_input('
    Please input the command:')
            remote_id = raw_input("Please input remote id:")
            msg_send = "%s||%s" % (remote_id, msg)
            self.client_socket.send(msg_send)
            self.flag = 1
    
        def socket_handler(self):
            f = open('input.txt','w+')
            while 1:
                start = datetime.datetime.now()  # 开始时间
                rlist = [self.client_socket]  # 接收列表
                read_list, write_list, error_list = select.select(rlist, [], [], 2)
                if self.flag == 0:  # 如果没有输入就等待输入,否则等待网络返回
                    self.input_command()
                for sock in read_list:
                    time.sleep(0.2)
                    now = datetime.datetime.now()
                    if (now - start).seconds > TIMEOUT:
                        break#watchddog
                    # incoming message from remote server
                    if sock == self.client_socket:
                        data = sock.recv(4096)
                        if not data:
                            print '
    Disconnected from chat server'
                            sys.exit()
                        else:
                            # print data
                            self.process_data_return(data)
                            self.prompt()
  • 相关阅读:
    在像Angular2这样的SPA应用中使用Google Analytics的方法
    英语
    教你打包Java程序,jar转exe随处可跑
    [java]java字符串如何保存到数据库日期类型的列?
    获取主板序列号 cpu序列号,硬盘序列号,MAC地址
    java获取mac地址,ip地址
    java 获取硬件信息
    获取年月日 时分秒
    这是一页纸商业计划书 (Business Plan) 模板。
    javac和java命令的详解
  • 原文地址:https://www.cnblogs.com/wuxie1989/p/7233116.html
Copyright © 2011-2022 走看看