socket server--- socket并发模块

1、UDP的使用:

首先需要调用socket server的ThreadingUDPServer(IP地址和端口号,调用的类方法,调用的类需要继承 BaseRequestHandler 这个类,并需要重写handle()方法,serve_forever() 用户循环保持连接。    self.client_address 是连接地址,self.request是一个由信息和套接字组成的二元组。    

import socketserver


class Myserver(socketserver.BaseRequestHandler):
    def handle(self):
        # obj是套接字对象,相当于s声明的套接字
        print(self.request)
        msg, obj = self.request
        print("msg",msg)  
        print("obj",obj)  
        obj.sendto("2333".encode('utf-8'), self.client_address)


s = socketserver.ThreadingUDPServer(('127.0.0.1',8080),Myserver)
# 连接循环
s.serve_forever()

>>> (b'hello', <socket.socket fd=464, family=AddressFamily.AF_INET, type=SocketKind.SOCK_DGRAM, proto=0, laddr=('127.0.0.1', 8080)>)
>>> msg b'hello'
>>> obj <socket.socket fd=464, family=AddressFamily.AF_INET, type=SocketKind.SOCK_DGRAM, proto=0, laddr=('127.0.0.1', 8080)>

2、TCP的使用:

调用 socketserver.ThreadingUDPServer( (IP地址和端口号) ,调用类的方法)。self.request  就是连接conn用于收发消息, self.client_address是地址。

import socketserver


class Myserver(socketserver.BaseRequestHandler):
    def handle(self):
        # 相当于conn
        print(self.request)
        # 相当于地址
        print(self.client_address)
        res = self.request.recv(1024)
        print(res)
        self.request.send('OK'.encode('utf-8'))


s = socketserver.ThreadingTCPServer(('127.0.0.1',8080),Myserver)
# 连接循环
s.serve_forever()


>>> <socket.socket fd=532, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 8080), raddr=('127.0.0.1', 51527)>
>>> ('127.0.0.1', 51527)

3、继承关系:Baseserver 是socket server 的基类。

3、链接的合法性:

验证链接是否合法就是,对验证信息加' 盐 ',这个盐就是特殊的加密方式,只有合法的客户端才知道加密方式,将信息发送到客户端,客户端加密后服务端将信息解密,对比是否相等。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值