Python入门学习 DAY33 (基于UDP通信的套接字 socketserver模块 进程基础)

Python入门学习

DAY33

今日内容:基于UDP通信的套接字   socketserver模块  进程基础

1. 基于UDP通信的套接字

服务器

import socket           

server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)     #创建一个基于udp的服务器的套接字

server.bind(('127.0.0.1',8080))           # 绑定服务器IP,PORT

data,client_addr = server.recvfrom(1024)  # 接收客户端传来的数据

server.sendto(data.upper(),client_addr)   # 发送消息给客户端

server.close()

客户端

import socket

client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

msg = input('>>>:').strip()

client.sendto(msg.encode('utf-8'),('127.0.0.1',8080))

data,server_addr = client.recvfrom(1024)

print(data)

client.close()

2 .socketserver模块(使用该模块可以实现并发处理)

基于TCP通信

服务器

import socketserver

class MyTCPhandler(socketserver.BaseRequestHandler):
    def handle(self):
        while True:
            try:
                data = self.request.recv(1024)
                self.request.send(data.upper())
            except ConnectionResetError:
                break

if __name__ == '__main__':
    server = socketserver.ThreadingTCPServer(('127.0.0.1',8080),MyTCPhandler)
    server.serve_forever() # 链接循环

客户端

from socket import *

client = socket(AF_INET,SOCK_STREAM)

client.connect(('127.0.0.1',8080))

while True:
    msg = input('>>>:').strip()
    if len(msg) == 0: continue
    client.send(msg.encode('utf-8'))
    data = client.recv(1024)
    print(data)

client.close()
    

基于UPD通信

服务器

    import socketserver

class MyUDPhandler(socketserver.BaseRequestHandler):
    def handle(self):
        data,sock = self.request
        sock.sendto(data.upper(),self.client_address)

if __name__ == '__main__':
    server = socketserver.ThreadingUDPServer(('127.0.0.1',8080),MyUDPhandler)
    server.serve_forever()

客户端

from socket import *

client = socket(AF_INET,SOCK_DGRAM)

while True:
    msg = input('>>>:').strip()
    client.sendto(msg.encode('utf-8'),('127.0.0.1',8080))
    data,server_addr = client.recvfrom(1024)
    print(data)
    
扫描二维码关注公众号,回复: 3137937 查看本文章

3.进程基础

什么是进程
    进程指的是一个正在进行/运行的程序,进程是用来描述程序执行过程的虚拟概念

进程和程序
    程序:一堆代码
    进程:程序的执行的过程

    进程的概念起源于操作系统,进程是操作系统最核心的概念,操作系统其它所有的概念都是围绕进程来

操作系统理论:
    操作系统是什么?
            操作系统是一个协调\管理\控制计算机硬件资源与应用软件资源的一段控制程序
            有两大功能:
                1. 将复杂的硬件操作封装成简单的接口给应用程序或者用户去使用
                2. 将多个进程对硬件的竞争变得有序

    操作系统发展史
             并发: 多个任务看起来是同时运行的
             串行:一个任务完完整整地运行完毕,才能运行下一个任务

    多道技术:(复用=>共享/共用)
            1. 空间上的复用:多个任务复用内存空间
            2. 时间上的复用:多个任务复用cpu的时间
                        一个任务占用cpu时间过长会被操作系统强行剥夺走cpu的执行权限:比起串行执行反而会降低效率
                        一个任务遇到io操作也会被操作系统强行剥夺走cpu的执行权限:比起串行执行可以提升效率

以上为本次学习内容

猜你喜欢

转载自blog.csdn.net/sql121407/article/details/82388580
今日推荐