用socketserver创建一个TCP服务器

from socketserver import BaseRequestHandler, TCPServer

def xyz_to_msg(x : int,y : int,z : int) -> str:

   assert len(str(x)) <= 5, 'The length of x cannot be greater than 5!'
   assert len(str(y)) <= 5, 'The length of y cannot be greater than 5!'
   assert len(str(z)) <= 5, 'The length of z cannot be greater than 5!'

   msg_x = str(x).rjust(5,'0') if x > 0 else '-' + str(-x).rjust(4,'0')
   msg_y = str(y).rjust(5,'0') if y > 0 else '-' + str(-y).rjust(4,'0')
   msg_z = str(z).rjust(5,'0') if z > 0 else '-' + str(-z).rjust(4,'0')
   msg = msg_x + msg_y + msg_z
   return  msg

# 继承BaseRequestHandler这个base class,并重定义handle()
class EchoHandler(BaseRequestHandler):
    def handle(self):
        print('Got connection from', self.client_address)

        # self.request is the TCP socket connected to the client
        while True:
            # 8192代表每次读取8192字节
            recvdata = self.request.recv(1024)
            if not recvdata:
                break
            msg = xyz_to_msg(1175,42,293)
            # print(type(msg))
            self.request.send(msg.encode())


if __name__ == '__main__':
    # 第一对参数是(host, port)
    serv = TCPServer(('127.0.0.1', 9999), EchoHandler)
    serv.serve_forever()


















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值