基于UDP的套接字

udp是无连接的,先启动哪一端都不会报错

socket.SOCK_DGRAM 数据报协议

udp不会发送空数据,什么都不输入直接发送也会有报头发过去

服务端

import socket

server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
server.bind(('127.0.0.1',8080)) while True:
data,client_addr = server.recvfrom(1024)
print(data)
server.sendto(data.upper(),client_addr) 客户端
import socket client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) while True:
msg = input('>>:')
client.sendto(msg.encode('utf-8'),('127.0.0.1',8080))
data,server_addr = client.recvfrom(1024)
print(data)
socketserver模块

使用socketserver类实现基于tcp的并发编程

import socketserver

class MyHandler(socketserver.BaseRequestHandler):
def handle(self):
# 通信循环
while True:
try:
data = self.request.recv(1024)
if len(data) == 0: break
self.request.send(data.upper())
except ConnectionRefusedError:
break
self.request.close() if __name__ == '__main__':
s = socketserver.ThreadingTCPServer(('127.0.0.1', 8080), MyHandler, bind_and_activate=True)
s.serve_forever() # 代表连接循环
# 循环建立连接,每建立一个连接就会启动一个线程(服务员),专门与刚刚建立好的连接做通信循环

使用socketserver类实现基于udp的并发编程

import socketserver

class MyHandler(socketserver.BaseRequestHandler):
def handle(self):
# 通信循环
print(self.__dict__)
print(self.client_address)
print(self.request) data = self.request[0]
print('客户消息', data)
self.request[1].sendto(data.upper(), self.client_address) if __name__ == '__main__':
s = socketserver.ThreadingUDPServer(('127.0.0.1', 8081), MyHandler)
s.serve_forever()

进程

1.什么是进程?

进程指的是一个正在运行的程序,或者说是程序的运行过程,即进程是一个抽象的概念

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

2.为何要进程?

并发

3.如何用进程?

开启进程的两种方式

操作系统原理

1.串行:一个任务完完整整地运行完毕后,才能运行下一个任务

2.并发:看起来多个任务是同时运行的即可,单核也可以实现并发

3.并行:真正意义上多个任务同时运行,只有多核才能实现并行

4.cpu的功能:cpu是用来做计算的,cpu是无法执行IO操作的,一旦遇到io操作,应该去执行别的任务

5.多道技术:

①空间上的复用==》多个进程共用一个内存条

②时间上的复用==》多个进程复用同一个cpu的时间

cpu遇到IO切换:可以提升效率

一个进程占用cpu时间过长也会切走:为了实现并发效果不得已而为之,反而会降低程序的执行效率

												

基于socket的udp传输,socketserver模块,进程的更多相关文章

  1. UDP协议&socketserver模块

    UDP协议&socketserver模块 一.UDP协议 1.1 UDP实现简单通信 服务器 ------------------------------------------------- ...

  2. JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用

    JAVA之旅(三十二)--JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例, ...

  3. 网络编程(基于udp协议的套接字/socketserver模块/进程简介)

    一.基于UDP协议的套接字 TCP是建立可靠连接,并且通信双方都可以以流的形式发送数据.相对TCP,UDP则是面向无连接的协议. 使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就 ...

  4. python异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-3

    异常捕获 异常:程序在运行过程中出现了不可预知的错误,并且该错误没有对应的处理机制,那么就会以异常的形式表现出来 影响:整个程序无法再正常运行 异常的结构 异常的类型 NameError 异常的信息 ...

  5. python全栈开发day29-网络编程之socket常见方法,socketserver模块,ftp作业

    一.昨日内容回顾 1.arp协议含义 2.子网,子网掩码 3.两台电脑在网络中怎么通信的? 4.tcp和udp socket编码 5.tcp和udp协议的区别 6.tcp三次握手和四次挥手,syn洪攻 ...

  6. 基于Socket的UDP发包程序

    UDP(User Datagram Protocol,用户数据报协议)是在互联网中常用的传输层协议,该协议提供了向另一用户程序发送的消息的最简便的协议机制.与TCP一样,其默认的下层协议是IP.UDP ...

  7. 初识-----基于Socket的UDP和TCP编程及测试代码

    一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流 ...

  8. 基于Socket的UDP和TCP编程介绍

    一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流 ...

  9. 「完整案例」基于Socket开发TCP传输客户端

    ​1 程序界面设计 TCP客户端在上位机开发中应用很广,大多数情况下,上位机软件都是作为一个TCP客户端来与PLC或其他服务器进行通信的.TCP客户端的主要功能就是连接服务器.发送数据.接收数据.断开 ...

随机推荐

  1. Vue 双向绑定原理

    Vue.js最核心的功能有两个,一是响应式的数据绑定系统,二是组件系统. 一.访问器属性:Object.defineProperty ECMAScript 262v5带来的新东西,FF把它归入为jav ...

  2. webpack自动生成项目的html

    1 自动生成多个html页面 设置webpack.config.js中的plugins属性,多次调用plugin插件(new htmlWebpackPlugin()),同时设置对应数量的.js入口文件 ...

  3. linux c 执行新程序

    学习进程时,linu c上说新开的进程一般要执行另外一个程序,同时与父进程执行同一个程序没有意义 如下是如何执行一个新的程序 使用exec函数簇 exec函数簇包含如下函数

  4. linux网络编程之IO模型

    本文转自作者:huangguisu 1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步:      所谓 ...

  5. python基础===codecs打开文件,解决文件编码格式的问题

    codecs https://docs.python.org/3/library/codecs.html 我们经常用open打开文件的时候会出现各式各样的错误,编码格式的问题,等等~真的很烦 现在尽量 ...

  6. python初学--文件操作、字典

    文件读写 1.先打开文件 2.读取/写入内容 3.保存文件   文件的open模式有三种 1.w 写模式,它是不能读的 只要用w打开文件,文件中的东西都会被清空 w+, 写读模式,只要沾上w 就会清空 ...

  7. NativeScriptEngineService 被调用流程

    AbsractSearchScritp 有个lookup! NativeScriptEngineService search()会调用 script.setLookup() NativeScriptE ...

  8. hdu 1428(很好的一道题,最短路+记忆化搜索)

    漫步校园 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  9. poj 1579(动态规划初探之记忆化搜索)

    Function Run Fun Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 17843   Accepted: 9112 ...

  10. Maximum Gap——桶排序

    Given an unsorted array, find the maximum difference between the successive elements in its sorted f ...