自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 静态Web服务器-命令行启动动态绑定端口号

导入sys模块import socketimport threadingimport sys# 定义web服务器类class HttpWebServer(object): def __init__(self, port): # 创建服务端套接字 tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 设置端口号复用, 程序退出,端口号立即释放

2021-04-02 12:02:58 203

原创 Web静态服务器多任务版

前文的web静态服务器响应完一个客户端,才能接着处理其它客户端强求;本文利用线程执行多个客户端请求。import socketimport threading# 处理客户端请求def handle_client_request(new_socket): # 接收数据 recv_data = new_socket.recv(4096) # 判断客户端是否发送数据 if len(recv_data) == 0: print('客户端断开连接了')

2021-04-02 09:43:11 63

原创 静态Web服务器-返回指定页面数据

前面说过返回固定页面数据,这次返回客户端指定页面数据使用捕获异常的方法来判断客户端请求内容**不存在时返回404import socketdef main(): # 创建服务端套接字 tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 设置端口号复用, 程序退出,端口号立即释放 tcp_server_socket.setsockopt(socket.SOL_SOCKET, so

2021-04-01 16:50:11 193

原创 搭建静态web服务器

传输 **HTTP** 协议格式的数据是基于 **TCP**传输协议的,发送数据之前需要先建立连接。步骤:编写一个TCP服务端程序获取浏览器发送的http请求报文数据读取固定页面数据,把页面数据组装成HTTP响应报文数据发送给浏览器。HTTP响应报文数据发送完成以后,关闭服务于客户端的套接字。import socketif __name__ == '__main__': # 创建服务端套接字 tcp_server_socket = socket.socket(socke.

2021-04-01 10:33:31 88

原创 Python 找完美数

找出1~9999之间的所有完美数完美数是除自身外其他所有因子的和正好等于这个数本身的数例如: 6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 + 14for num in range(1, 10000): result = 0 for i in range(1, num): if num % i == 0: result += i if result == num: print(result)

2021-03-31 20:17:35 2652 1

原创 TCP网络应用程序开发

TCP网络应用程序开发1.TCP客户端程序开发客户端程序开发流程:1、创建套接字对象;2、建立连接;3、发送数据;4、接收数据;5、关闭套接字。import socket# 创建tcp客户端套接字if __name__ == '__main__': # AF_INET: IPv4地址类型;SOCK_STREAM: TCP传输协议类型 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #

2021-03-29 20:08:41 180

原创 线程共享全局变量出错

解决办法多任务编程线程同步: 保证同一时刻只能有一个线程去操作全局变量 。同步: 就是协同步调,按预定的先后次序进行运行。线程同步的两种方式:1、线程等待(join)2、互斥锁线程共享全局变量出错的两种解决办法:方法一利用线程等待,即子线程.join()的方法让当前线程(主线程)等待添加数据的线程执行完成后代码在继续执行import threading# 定义一个全局变量g_num = 0def first_data(): for i in range(1000000)

2021-03-27 17:34:53 543 3

原创 python多任务编程

python进程与线程线程的注意事1、线程之间执行是无序的2、主线程会等待所有的子线程执行结束再结束3、线程之间共享全局变量import threadingimport timeg_list = []def add_data(): for i in range(3): # 将i追加到全局变量内 g_list.append(i) time.sleep(0.2) print(g_list)def read_data()

2021-03-27 16:47:24 112 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除