zoukankan      html  css  js  c++  java
  • day 29(作业)

    # 服务端
    import socket
    import struct
    import json
    from threading import Thread
    
    server = socket.socket()
    server.bind(
        ('127.0.0.1', 9608)
    )
    server.listen(5)
    
    
    def my_server(conn):
        while True:
            try:
                headers = conn.recv(4)
                if not headers:
                    continue
                data_len = struct.unpack('i', headers)[0]
                bytes_data = conn.recv(data_len)
                back_dic = json.loads(bytes_data.decode('utf-8'))
                if back_dic['msg'] == 'q':
                    break
                print(f'{back_dic["name"]}:{back_dic["msg"]}')
                msg1 = back_dic["msg"]
                msg = msg1.upper()
                to_dic = {'name': 'logan', 'msg': msg}
                json_dic = json.dumps(to_dic)
                bytes_dic = json_dic.encode('utf-8')
                send_dic = struct.pack('i', len(bytes_dic))
                conn.send(send_dic)
                conn.send(bytes_dic)
            except Exception as e:
                print(e)
                break
    
    
    if __name__ == '__main__':
        while True:
            conn, addr = server.accept()
            t = Thread(target=my_server, args=(conn,))
            t.start()
    
    
    # 客户端
    import socket
    import struct
    import json
    
    client = socket.socket()
    client.connect(
        ('127.0.0.1', 9608)
    )
    while True:
        try:
            msg = input('发送内容:')
            if msg == 'q':
                break
            dic = {'name': '用户1', 'msg': msg}
            bytes_dic = json.dumps(dic)
            send_dic = bytes_dic.encode('utf-8')
            send_len = struct.pack('i', len(send_dic))
            client.send(send_len)
            client.send(send_dic)
            headers = client.recv(4)
            data_len = struct.unpack('i', headers)[0]
            bytes_data = client.recv(data_len)
            back_dic = json.loads(bytes_data.decode('utf-8'))
            print(f'{back_dic["name"]}:{back_dic["msg"]}')
        except Exception as e:
            print(e)
            break
    client.close()
    
    
  • 相关阅读:
    姚明如何理财
    转:韩国“抢文化”与中国的“文化洁癖”
    转:关于IDL程序的发布
    GIS相关网站
    【转】:身为男人应做的十件事情
    转:关于稀少控制点下遥感影像纠正的主要研究成果
    转:E都市创业经历
    转载:OSSIM简介
    市场营销学课程
    C#中判断是否为数字&是否为整除(转)
  • 原文地址:https://www.cnblogs.com/luocongyu/p/11722221.html
Copyright © 2011-2022 走看看