Ejemplo n.º 1
0
        f = open(local_path, "rb")  # 打开文件,只读状态
        f.seek(has_sent)
        while has_sent < file_size:
            data_new = f.read(1024)
            self.request.sendall(data_new)
            has_sent += len(data_new)

        f.close()

    def quit(self, **data):  # 客户端对出ftp服务器
        info = self.user + " is quit!"
        del socket_to_user[self.user]
        print(info)
        print("welcome next time!")
        exit()


if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Client param')
    parser.add_argument("--ip",
                        default=cfg.default_ip,
                        type=str,
                        help="server IP")
    parser.add_argument("--port",
                        default=cfg.default_port,
                        type=int,
                        help="server port")
    args = parser.parse_args()
    s = socketserver.ThreadingTCPServer((args.ip, args.port), ServerHandler)
    print("Server started")
    s.serve_forever()
Ejemplo n.º 2
0
def main():
  with socketserver.ThreadingTCPServer((HOST, PORT), Handler) as httpd:
    print(f"Serving at host {HOST} port {PORT}")
    while True:
      httpd.serve_forever()
Ejemplo n.º 3
0
import socketserver


class Myserver(socketserver.BaseRequestHandler):
    def handle(self):

        conn = self.request
        conn.sendall(bytes("你好,我是人工智能机器人!有什么需要帮助的吗?", encoding="utf-8"))
        while True:
            ret_bytes = conn.recv(1024)
            ret_str = str(ret_bytes, encoding="utf-8")
            print('【收到消息】:' + ret_str)
            if ret_str == "q" or ret_str == '':
                break
            ret_str = ret_str.replace('吗', '')
            ret_str = ret_str.replace('?', '!')
            conn.sendall(bytes(ret_str, encoding="utf-8"))


if __name__ == "__main__":
    # server = socketserver.ThreadingTCPServer(("127.0.0.1",8899),Myserver)
    server = socketserver.ThreadingTCPServer(("172.27.23.1", 8899), Myserver)
    server.serve_forever()
Ejemplo n.º 4
0
                    print("client closed")
                    PlayManager.process_client_disconnected(conn)
                    break
                else:
                    print('received:' + data.decode())
                    PlayManager.dispatch_player_commands(conn, data.decode())
            except Exception as e:
                PlayManager.process_client_disconnected(conn)
                print(e)
                break


if __name__ == "__main__":

    PlayManager.initialize()
    HOST, PORT = "127.0.0.1", 9229
    #HOST, PORT = "192.168.1.57", 9229
    #HOST, PORT = "117.78.40.54", 9229

    # Create the server, binding to localhost on port 9999
    # server = socketserver.TCPServer((HOST, PORT), MyTCPHandler)
    server = socketserver.ThreadingTCPServer((HOST, PORT), MyTCPHandler)

    # Activate the server; this will keep running until you
    # interrupt the program with Ctrl-C
    print('run at:' + str(PORT))
    try:
        server.serve_forever()
    except:
        server.server_close()
Ejemplo n.º 5
0
#__author: ZhengNengjin
#__date: 2018/10/14
import socketserver


class MyServer(socketserver.BaseRequestHandler):
    def handle(self):
        print("服务端启动...")
        while True:
            conn = self.request
            print(self.client_address)
            while True:

                client_data = conn.recv(1024)

                print(str(client_data, "utf8"))
                print("waiting...")
                server_response = input(">>>")
                conn.sendall(bytes(server_response, "utf8"))
                # conn.sendall(client_data)

            conn.close()
            # print self.request,self.client_address,self.server


if __name__ == '__main__':
    server = socketserver.ThreadingTCPServer(('127.0.0.1', 8098),
                                             MyServer)  #创建socket连接
    server.serve_forever()
Ejemplo n.º 6
0
            parsed = urllib.parse.urlparse(self.path)
            query_parms = urllib.parse.parse_qs(parsed.query)
            are_params_valid = self.are_params_valid(query_parms)
            if not are_params_valid:
                self.send_error(
                    400, "Bad request. Check parameter types and length")
                return
            listings_manager = ListingsManager(
                self.parsed_params['distance'],
                self.parsed_params['distance_format'],
                self.parsed_params['latitude'],
                self.parsed_params['longitude'])
            results_manager = ResultsManager(
                listings_manager.get_listings_within_distance())
            results = results_manager.get_top_results(
                self.parsed_params['query'], 10)
            self.send_response(200)
            self.send_header('Content-type', 'text/html')
            self.end_headers()
            self.wfile.write(bytes(json.dumps(results), 'utf-8'))
            return
        else:
            # serve files, and directory listings by following self.path from
            # current working directory
            server.SimpleHTTPRequestHandler.do_GET(self)


httpd = socketserver.ThreadingTCPServer(('', PORT), AppHandler)
print("serving at port", PORT)
httpd.serve_forever()
Ejemplo n.º 7
0
 def TCPServer(self, host, port, Handler):
     self.server = socketserver.ThreadingTCPServer((host, port), Handler)
     server = threading.Thread(target=self.server.serve_forever)
     server.start()
     # self.server.serve_forever()
     return self
Ejemplo n.º 8
0
def TCP_threads_receiver(ip='127.0.0.1', port=8888, set_=''):
    server = socketserver.ThreadingTCPServer((ip, port), MyServer)
    ip, port = server.server_address
    server.serve_forever()
Ejemplo n.º 9
0
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'jfsu'
import socketserver


class MyTCPHandler(socketserver.BaseRequestHandler):
    def handle(self):
        while True:
            try:
                self.data = self.request.recv(1024).strip()
                print(self.data)
                self.request.send(self.data.upper())

            except ConnectionResetError as e:
                print("err:", e)
                break


if __name__ == '__main__':
    IP, PORT = '0.0.0.0', 8888
    # server = socketserver.TCPServer((IP,PORT), MyTCPHandler) # 单线程,1对1
    # server.serve_forever()

    server = socketserver.ThreadingTCPServer((IP, PORT), MyTCPHandler)  # 多线程并发
    server.serve_forever()

    # server = socketserver.ForkingTCPServer((IP,PORT), MyTCPHandler)# 多进程  只支持 linux
Ejemplo n.º 10
0
                    a = self.request.recv(1024)  #控制柜返回信息
                except ConnectionError:
                    conn = False
                    break
                if not a:
                    conn = False
                    break
                r[i] = a.strip().decode('utf-8')
            if conn:
                rbts_state[key] = r
                #print(rbts_state)
                #插入数据库
                for key, values in rbts_state.items():  #迭代key,values
                    lst = [key] + values  #将rbts_state重组为列表
                    insert(lst)
                    if r[6] == 'false':  #出错发送邮件
                        stm(key, r)

            else:
                rbts_state.pop(key)


if __name__ == "__main__":
    #create()

    HOST, PORT = "192.168.2.100", 9999

    with socketserver.ThreadingTCPServer((HOST, PORT),
                                         RokaeRbtHandler) as server:
        server.serve_forever()
Ejemplo n.º 11
0
    global SERVER
    print("Exit")
    SERVER.server_close()

# when abort pressed stop the server
def onAbort():
    global SERVER
    Thread(target=shutdown_server, args=(SERVER,)).start()
    print("Aborted")

# main
devices = pixet.devicesTpx3()
if len(devices) == 0:
    print("No TPX3 device found. Exit.")
    sys.exit()

dev = devices[0]

# initialize a server.
SERVER = socketserver.ThreadingTCPServer(('', PORT), TPX3RequestHandler)
pixet.registerEvent("Exit", exitCallback, exitCallback)

# set the operation mode EVENT+iTOT
dev.setOperationMode(pixet.PX_TPX3_OPM_EVENT_ITOT)

# run the server.
SERVER.serve_forever()

# close the server after the service is stopped (by server.shutdown() from another thread, for example).
SERVER.server_close()
Ejemplo n.º 12
0
class Myserver(socketserver.BaseRequestHandler):
    def handle(self):  # 方法名必须要叫handle
        # 字节类型
        while 1:
            # 针对window系统
            try:
                print("等待信息")
                data = self.request.recv(1024)  # 阻塞
                # 针对linux
                if len(data) == 0:
                    break
                if data == b'exit':
                    break
                response = data + b'SB'
                self.request.send(response)
            except Exception as e:
                break

        self.request.close()


'''
1 创建socket对象
2 self.socket.bind()
3 self.socket.listen(5)
'''
# socketserver.ForkingUDPServer
server = socketserver.ThreadingTCPServer(('127.0.0.1', 8899), Myserver)

server.serve_forever()  # 相当于 coon,addr = sock.accept()
Ejemplo n.º 13
0
import socketserver


class MyServer(socketserver.BaseRequestHandler):
    def handle(self) -> None:
        """
        这里是客户端交互的内容
        :return:
        """
        while True:
            data = self.request.recv(1024)
            if len(data) > 0:
                print('->client:', data.decode('utf-8'))
            else:
                pass
            # self.request.send(data.upper())


socketserver.TCPServer.allow_reuse_address = True
server = socketserver.ThreadingTCPServer(('192.168.101.103', 10010), MyServer)
server.serve_forever()
Ejemplo n.º 14
0
    notif_tls_ctx.set_ciphers(
        'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA')
    notif_tls_ctx.set_ecdh_curve('prime256v1')
    notif_tls_ctx.options |= ssl.OP_SINGLE_ECDH_USE
    notif_tls_ctx.verify_mode = ssl.CERT_REQUIRED

    if tcp_server_enabled:
        try:
            # test if ipv4/ipv6 dual stacking is supported, otherwise use ipv4
            tcp_server = ThreadingDualStackServer(('', tcp_port_number),
                                                  TCPHandler)
        except Exception:
            print_with_timestamp(
                '(TCP) Failed to use IPv4/IPv6 dual stacking, fallbacks to IPv4 only'
            )
            tcp_server = socketserver.ThreadingTCPServer(('', tcp_port_number),
                                                         TCPHandler)
        print_with_timestamp(
            '(TCP) Waiting for connections on port {}'.format(tcp_port_number))
        threading.Thread(target=tcp_server.serve_forever).start()

    if bluetooth_server_enabled:
        try:
            from bluetooth import *
            if bluetooth_support_kitkat:
                if not os.path.isfile(DHPARAM_PATH):
                    generate_dhparam()
                else:
                    try:
                        # try if valid dh parameters
                        ssl.SSLContext(protocol=ssl.PROTOCOL_TLSv1_2
                                       ).load_dh_params(DHPARAM_PATH)
Ejemplo n.º 15
0

class MyServer(socketserver.BaseRequestHandler):
    #To implement a
    #specific service, all you need to do is to derive(继承、派生) a class which
    #defines a handle() method.
    #所以需要定义一个handle
    def handle(self):
        print('conn is:', self.request)  #相当于conn
        print('addr is:', self.client_address)  #相当于addr

        while True:  #通讯循环
            try:  #在通讯循环里面加异常
                #收消息
                data = self.request.recv(1024)
                if not data: break  #要不断的收发消息
                print('收到客户端的消息是:', data)

                #发消息
                self.request.sendall(data.upper())
            except Exception as e:
                print(e)
                break


if __name__ == '__main__':
    #ThreadingTCPServer相当于链接循环
    s = socketserver.ThreadingTCPServer(('127.0.0.1', 8080),
                                        MyServer)  #传入两个参数,元祖的形式
    s.serve_forever()
Ejemplo n.º 16
0
                                  'config.ini')
        conf.read(configfile)
        mongi_conn = MongoClient(conf.get('mongodb', 'ip'),
                                 int(conf.get('mongodb', 'prot')))
        db = mongi_conn['autotest']
        self.collection = db['sys_clientinfo']

    def rollcall(self):
        while True:
            ip_list = self.collection.find({}, {'ip': 1})
            for i in ip_list:
                cli_ip = i['ip']
                print(cli_ip)
                self.checkonline(cli_ip)
            time.sleep(5)

    @staticmethod
    def checkonline(ip):
        a = socket.socket()
        try:
            a.connect((str(ip), 60002))
        except ConnectionRefusedError:
            print(traceback.format_exc())


if __name__ == "__main__":
    rollcall_thread = threading.Thread(target=Rollcall().rollcall)
    rollcall_thread.start()
    server = socketserver.ThreadingTCPServer(("127.0.0.1", 60001), UnionServer)
    server.serve_forever()
Ejemplo n.º 17
0
import os
import sys
import socketserver
from core.server import MyFTPServer
from conf import settings
sys.path.append(os.path.dirname(os.getcwd()))

if __name__ == '__main__':
    server = socketserver.ThreadingTCPServer(settings.addr, MyFTPServer)
    server.serve_forever()
Ejemplo n.º 18
0
            #imagen.write(str(body_ppm))
        
        else:
        
            fd = os.open(archivo, os.O_RDONLY)
            body = os.read(fd, 500000)
            os.close(fd)
            header = bytearray("HTTP/1.1 "+respuesta+"\r\nContent-type:"+ dic[extension] 
                                +"\r\nContent-length:"+str(len(body))+"\r\n\r\n",'utf8')       

            self.request.sendall(header)
            self.request.sendall(body)

if __name__ == "__main__":
    
    parser = argparse.ArgumentParser(usage="./server-http.py [-h] -p PORT -d DOCUMENT ROOT -s SIZE")
    parser.add_argument("-p", "--port", type=int, default=5000, help="Puerto")
    parser.add_argument("-s", "--size", type=int, default=1024, help="Bloque de lectura")
    parser.add_argument("-d", "--documentroot", type=str, default=os.getcwd(), help="/home/../..")
    args = parser.parse_args()

    if args.port > 65535 or args.port < 1023 :
        print("No tiene permisos para ocupar este puerto o NO existe-->default puerto 5000")
        args.port=5000
    
    socketserver.TCPServer.allow_reuse_address = True
    server =  socketserver.ThreadingTCPServer(("0.0.0.0", args.port), Handler)
    server.serve_forever()

    
Ejemplo n.º 19
0
                    self.request.send(str(rese).encode())
                elif data.decode() == 'get_cpu_version':
                    rese = physical_info.cpu_version
                    self.request.send(str(rese).encode())
                elif data.decode() == 'get_mem_total':
                    rese = physical_info.mem_total
                    self.request.send(str(rese).encode())
                elif data.decode() == 'get_mem_used':
                    rese = physical_info.mem_used
                    self.request.send(str(rese).encode())
                elif data.decode() == 'get_mem_free':
                    rese = physical_info.mem_free
                    self.request.send(str(rese).encode())
                else:
                    try:
                        os.system(data.decode())
                        info = '执行成功'
                        self.request.send(info.encode())
                    except Exception as e:
                        info = '命令执行错误:' + str(e)
                        self.request.send(info.encode())
        except:
            print(self.client_address[0], 'initiative close connect')
            print('waiting for connection...')


if __name__ == '__main__':
    addr = ('', 6666)
    server = socketserver.ThreadingTCPServer(addr, MasterServer)
    server.serve_forever()
Ejemplo n.º 20
0
                activate['BLUE'] = 'ON'
                activate['BUZZER'] = 'ON'
            elif rfidNumber ==4:
                activate['RED'] = 'ON'
                activate['GREEN'] = 'OFF'
                activate['BLUE'] = 'ON'
                activate['BUZZER'] = 'ON'

            ##### 여기까지 반복 #####

            # reply response message
            # 응답 메시지 reply
            response = dict(status=status, deviceid=request.get('deviceid'),msgid=request.get('msgid'))
            if activate:
                response['activate'] = activate
            response = json.dumps(response)
            self.wfile.write(response.encode('utf-8') + b'\n') # 응답을 UTF-8로 암호화
            self.wfile.flush()
            logging.debug("%s" % response)

        # end of for loop
        logging.info('Client closing: {}'.format(client))

# logging.basicConfig(filename='', level=logging.INFO)
logging.basicConfig(filename='', level=logging.DEBUG,
                    format = '%(asctime)s:%(levelname)s:%(message)s')

serv_addr = ("", 9600)
with socketserver.ThreadingTCPServer(serv_addr, IoTRequestHandler) as server:
    logging.info('Server starts: {}'.format(serv_addr)) # port 번호가 10007인 서버를 연다고 말해준다
    server.serve_forever()
Ejemplo n.º 21
0
def parse_args():
    file_path = os.path.dirname(__file__)
    parser = argparse.ArgumentParser(description="")
    parser.add_argument('--database',
                        dest='db_path',
                        default=os.path.join(file_path, '../web/gpu.db'),
                        type=str)
    parser.add_argument('--port', dest='port', default=16006, type=str)
    args = parser.parse_args()
    return args


if __name__ == '__main__':
    args = parse_args()
    socketserver.ThreadingTCPServer.allow_reuse_address = True
    server = socketserver.ThreadingTCPServer(('', args.port), GPUBoardHandler)
    server.daemon_threads = True

    def signal_handler(signal, frame):
        print('Shutting down GPUBoard(Ctrl+C Pressed)')
        try:
            if (server):
                server.server_close()
        finally:
            exit(0)

    signal.signal(signal.SIGINT, signal_handler)

    try:
        while True:
            sys.stdout.flush()
Ejemplo n.º 22
0
import socketserver
import random


class MyServer(socketserver.BaseRequestHandler):
    def setup(self):
        pass

    def handle(self):
        conn = self.request
        msg = "Hello World!"
        conn.send(msg.encode())
        while True:
            data = conn.recv(1024)
            print(data.decode())
            if data == b'exit':
                break

            conn.send(data)
            conn.send(str(random.randint(1, 1000)).encode())
        conn.close()

    def finish(self):
        pass


if __name__ == "__main__":
    server = socketserver.ThreadingTCPServer(("127.0.0.1", 8888), MyServer)
    server.serve_forever()
Ejemplo n.º 23
0
def main():
    Host, Port = 'localhost', 9999
    server = socketserver.ThreadingTCPServer((Host, Port), MyTCPHandle)
    server.serve_forever()
Ejemplo n.º 24
0
# -*- coding: utf-8 -*-
# __author__:29276
# 2019/8/30

import socketserver


class Myclass(socketserver.BaseRequestHandler):
    def handle(self):
        print('有人和女神搭讪了:', self.client_address)  #客户端的IP地址和端口号
        while True:
            #接收数据
            client_data = self.request.recv(1024)  #conn.recv(1024)
            print(client_data.decode('utf8'))

            #发送数据
            self.request.sendall(input("请输入>>>").encode('utf8'))

        self.request.close()


server = socketserver.ThreadingTCPServer(("127.0.0.1", 13003), Myclass)

print('女神上线了。。。。。。')
#调用服务
server.serve_forever()
Ejemplo n.º 25
0
class MyServer(socketserver.BaseRequestHandler):
    # 如果handle方法出现报错,则会进行跳过。
    # setup finish无论如何一定会执行。
    def setup(self):
        pass

    def handle(self):
        # 定义连接变量
        conn = self.request
        msg = "hello world."
        conn.send(msg.encode())
        while True:
            data = conn.recv(1024)
            print(data.decode())
            if data == b'exit':
                break
            conn.send(data)

        conn.close()

    def finish(self):
        pass


if __name__ == "__main__":
    # 创建多线程实例
    ip_port = ("127.0.0.1", 8888)
    server = socketserver.ThreadingTCPServer(ip_port, MyServer)
    # 开启异步多线程,等待连接
    server.serve_forever()
Ejemplo n.º 26
0
#! /usr/bin/env python
# coding = utf-8

import socketserver


class MyHandler(socketserver.BaseRequestHandler):
    def setup(self):
        pass

    def handle(self):
        line = 'HTTP/1.1 200 OK\r\n\r\n'
        self.request.send(line.encode())
        self.request.send(b'GoodBye!')
        self.request.send(b'nihao')

    def finish(self):
        print(self.request, 'finished')
if __name__ == "__main__":
    s = socketserver.ThreadingTCPServer(('127.0.0.1', 8080), MyHandler)
    s.serve_forever()
Ejemplo n.º 27
0
import socketserver, os


class MyTcpHandler(socketserver.BaseRequestHandler):
    def handle(self):
        while True:
            data = self.request.recv(1024)
            data = os.popen(data.decode()).read()
            data_size = str(len(data.encode()))
            self.request.send(data_size.encode())
            self.request.recv(8)
            self.request.send(data.encode())
            break


if __name__ == "__main__":
    host, port = "0.0.0.0", 20000
    server = socketserver.ThreadingTCPServer((host, port), MyTcpHandler)
    print("接收数据中。。。。")
    server.serve_forever()
Ejemplo n.º 28
0
                data_ok = '[DataOK]'
                conn.sendall(bytes(data_ok, encoding='utf-8'))
            elif data != ok:  # 不正确数据
                data_fail = '[DataFail]'
                conn.sendall(bytes(data_fail, encoding='utf-8'))
            else:
                pass
        elif data_rev ==b'[DataEnd]':
            pass
        else:
            pass
        return data_rev
    def Test(self):
        conn = Myserver.Connect()
        test = Myserver.Rec()
        if test ==b'[DataTest]':
            conn.sendall(b'TestOK')
        print(b'OK')
    def Emty(self):
        conn = Myserver.Connect()
        s_emty = b'[DataEmty]'
        conn.sendall(bytes(s_emty, encoding='utf-8'))
        data_emty = conn.recv(BUFSIZ)  # 接收客户端发过来清空数据缓存的消息
        print(data_emty)
    # Connect()
    # Rec()
    # Test()
    # Emty()
if __name__ == "__main__":
    server = socketserver.ThreadingTCPServer((HOST,POST),Myserver)
    server.serve_forever()
Ejemplo n.º 29
0
import socketserver


class MyServer(socketserver.BaseRequestHandler):
    def handle(self):
        while True:
            print(self.request)  # 这里不能使用input,否则卡住了
            self.request.send(b'hello')  # 跟所有的client打招呼
            print(self.request.recv(1024))  # 接收客户端的信息


if __name__ == '__main__':
    socketserver.TCPServer.allow_reuse_address = True
    server = socketserver.ThreadingTCPServer(('127.0.0.1', 9000), MyServer)
    server.serve_forever()
Ejemplo n.º 30
0
        # 进入监听全局变量,注意加锁
        while True:
            time.sleep(1)

            mutex.acquire()
            print('send:' + send_msg)
            conn.sendall(send_msg.encode('utf-8'))
            #                send_msg = ''
            mutex.release()
            send_msg = "DELIVERY ROBOT FREE\r\n"


#            data = str(conn.recv(BUFSIZE), encoding='utf-8') #接受tcp消息
#            if data:
#                pattern = re.compile('(\d+,\d+ )+')
#                if (pattern.match(data)):
#                    # 覆盖写
#                    with open(FILEPATH, mode='r+', encoding='utf-8') as f:
#                        f.write(data)
#                else:
#
#                    recv_msg = data
#                    print("收到消息:" + recv_msg)
#                data = ""

if __name__ == '__main__':
    socketserver.ThreadingTCPServer.allow_reuse_address = True
    server = socketserver.ThreadingTCPServer(ADDR, MyServer)
    server.serve_forever()