看看哪出问题了,做到把msg编码问题解决了后,运行后服务器端就报错了

来源:3-3 socket非阻塞模块2

南笙v7

2019-05-19 12:52

#服务器
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()
    
    
    
#客户端 
import socket

client = socket.socket()
ip_port = ("127.0.0.1", 8888)
client.connect(ip_port)
while True:
    data = client.recv(1024)
    print(data.decode())
    msg_input = input("请输入发送的消息:")
    client.send(msg_input.encode())
    if msg_input == "exit":
        break
    data = client.recv(1024)
    print(data.decode())

#报错

Exception happened during processing of request from ('127.0.0.1', 60018)

Traceback (most recent call last):

  File "D:\Python3\lib\socketserver.py", line 650, in process_request_thread

    self.finish_request(request, client_address)

  File "D:\Python3\lib\socketserver.py", line 360, in finish_request

    self.RequestHandlerClass(request, client_address, self)

  File "D:\Python3\lib\socketserver.py", line 720, in __init__

    self.handle()

  File "D:/python项目/s1.py", line 18, in handle

    conn.send(str(random.randint(1.1000)).encode())

TypeError: randint() missing 1 required positional argument: 'b'

----------------------------------------


写回答 关注

3回答

  • 慕丝0356183
    2019-08-26 17:05:02

    1.1000,‘点’改为‘逗号’。‘.‘改为','

  • qq_慕仔5278216
    2019-06-15 23:03:22

     第一个data = client.recv(1024)放在循环前面

  • XvJX
    2019-05-21 18:07:50

    conn.send(str(random.randint(1.1000)).encode())
    改:
    conn.send(str(random.randint(1,1000)).encode())

python运维-Socket网络编程

Socket网络编程入门

22579 学习 · 71 问题

查看课程

相似问题