Rumah  >  Soal Jawab  >  teks badan

Bagaimanakah soket python menerima data dalam format bait tcp/ip?

Bagaimanakah soket python menerima data dalam format bait tcp/ip? Yang berikut hanya boleh menerima teks biasa

import socketserver  # 导入socketserver模块
class MyServer(socketserver.BaseRequestHandler):  # 创建一个类,继承自socketserver模块下的BaseRequestHandler类
    def handle(self):  # 要想实现并发效果必须重写父类中的handler方法,在此方法中实现服务端的逻辑代码(不用再写连接准备,包括bind()、listen()、accept()方法)
        while 1:
            conn = self.request
            addr = self.client_address
            # 上面两行代码,等于 conn,addr = socket.accept(),只不过在socketserver模块中已经替我们包装好了,还替我们包装了包括bind()、listen()、accept()方法
            while 1:
                accept_data = conn.recv(1024)
                #accept_data = int('0x4',16)

                print(accept_data)

                if accept_data == "byebye":
                    break
                send_data = bytes(input(">>>>>"))
                conn.sendall(send_data)
            conn.close()


if __name__ == '__main__':
    sever = socketserver.ThreadingTCPServer(("192.168.0.110", 10001),
                                            MyServer)  # 传入 端口地址 和 我们新建的继承自socketserver模块下的BaseRequestHandler类  实例化对象

    sever.serve_forever()  # 通过调用对象的serve_forever()方法来激活服务端
迷茫迷茫2710 hari yang lalu809

membalas semua(1)saya akan balas

  • 我想大声告诉你

    我想大声告诉你2017-05-18 11:02:53

    Jika anda mempunyai python3, data yang dikembalikan oleh conn.recv() ialah bait dan ia akan menjadi str taip selepas penyahkodan. Atau gunakan bait untuk membandingkan. python3conn.recv() 返回数据就是 bytes,decode一下就是str类型。或者使用bytes比较。

    if accept_data == b"byebye":
        break

    处理 accept_date数据的时候,decode即可,如果服务器返回的utf-8编码的,只需要accep_data.decode('utf-8') rrreee

    Apabila memproses data accept_date, hanya menyahkodnya Jika pelayan mengembalikan pengekodan utf-8, anda hanya memerlukan accep_data.decode('utf-8') <. /kod>🎜

    balas
    0
  • Batalbalas