day 28

一.基于udp协议的套接字

服务端:

from socket import *
import  subprocess
server = socket(AF_INET, SOCK_DGRAM)
server.bind(('127.0.0.1', 8081))
while True:
    data, client_addr = server.recvfrom(1024)
    print("客户端发来的消息:",data.decode("utf-8"))
    mag =input("回复>>>").strip()
    server.recvfrom(mag.encode("utf-8"),client_addr)

客户端:
from socket import *

client=socket(AF_INET,SOCK_DGRAM)
while True:
    msg=input("发送>>>:").strip()
    client.sendto(msg.encode("utf-8"),("127.0.0.1",8081))
    data,server=client.recvfrom(1024)
    # print("收到服务端的信息:",data.decode("utf-8"))
    print(data.decode("gbk"))

二.socketserver模块的使用:

1.基于tcp协议套接字的使用:

服务端:

import socketserver


# 自定义用来处理通信循环
class MyTCPhandler(socketserver.BaseRequestHandler):
    def handle(self):
        while True:
            try:
                data = self.request.recv(1024)
                # print("客户端发来的消息为:", data.decode("utf-8"))
                # msg = input("回复>>>>").strip()
                self.request.send(data.upper())
            except ConnectionResetError:
                break

        self.request.close()


if __name__ == "__main__":
    server = socketserver.ThreadingTCPServer(("127.0.0.1", 8081), MyTCPhandler)
    server.serve_forever()


客户端:

from socket import *

client=socket(AF_INET,SOCK_STREAM)
client.connect(("127.0.0.1",8081))
while True:
    # msg=input("发送>>>:").strip()
    client.send(b"hello")
    data= client.recv(1024)
    print("收到服务端的信息:",data.decode("utf-8"))
    #  print(data.decode("gbk"))

2.基于udp协议的套接字的使用

服务端:

import socketserver


# 自定义用来处理通信循环
class MyUDPhandler(socketserver.BaseRequestHandler):
    def handle(self):
        while True:
            try:
                data,sock = self.request
                sock.sendto(data.upper(),self.client_address)
                # print("客户端发来的消息为:", data.decode("utf-8"))
                # msg = input("回复>>>>").strip()

                # self.request.send(data.upper())
            except ConnectionResetError:
                break

        self.request.close()


if __name__ == "__main__":
    server = socketserver.ThreadingUDPServer(("127.0.0.1", 8081), MyUDPhandler)
    server.serve_forever()


客户端:
from socket import *

client=socket(AF_INET,SOCK_DGRAM)
while True:
    # msg=input("发送>>>:").strip()
    client.sendto(b"hello",("127.0.0.1",8081))
    data,server=client.recvfrom(1024)
    print("收到服务端的信息:",data.decode("utf-8"))
    # print(data.decode("gbk"))

三.进程:

1.进程:指的是正在运行/执行的程序,是用来描述程序执行过程中的虚拟的概念

2.进程Vs程序
程序:是一堆代码
进程:是程序执行的一个过程

3.进程的概念起源于操作系统,是操作系统最核心的概念,操作系统的其他概念都是围绕进程来的

4.操作系统:是一个具有管理/控制/协调,计算机硬件资源与软件资源的一段控制程序
操作系统的两个功能:
1.将复杂的硬件操作封装成简单的接口,提供给应用程序和用户使用
2.将多个进程对硬件的竞争变的有序化

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

6.多道技术:(复用>>共享/共用)
1.空间上的复用:对个任务复用内存空间 io设备(存贮设备)
2.时间上的复用:多个任务复用CPU时间 计算设备
1.一个任务占用CPU时间过长会被操作系统强行剥夺走CPU的执行权力>>>比串行执行反而会降低效率
2.一个任务遇到io操作也会被操作系统强行剥夺走CPU的执行权力>>>比串行执行提升效率

:

猜你喜欢

转载自www.cnblogs.com/jxl123/p/9585206.html