随笔分类 - 网络编程
摘要:之前用socket都是服务端等待客户端连接; 最近有个需求,同一个局域网内,客户端等待服务端多次连接,多次接收服务端的命令在客户端执行,拿到执行结果并返回给服务端,且如果一方断掉,另一方要继续保持,等待对方的下一次连接 不废话,直接上代码; 无论是先运行server或者是先运行client,都可以进
阅读全文
摘要:最近在网络编程开发中遇到socket.error: [Errno 10054] An existing connection was forcibly closed by the remote host这样的错误,查了些资料也没什么用; 最后发现原来是socket server在设计时提前将sock
阅读全文
摘要:from threading import Thread,Lockimport timea=10b=10lock=Lock()def fun(): # lock.acquire() global a global b a+=1 time.sleep(1) b+=1 # lock.release()
阅读全文
摘要:#进程间通信,队列 from multiprocessing import Process,Queue import os,sys import time q=Queue() def get(data): time.sleep(2) print("thread {} get {}".format(o
阅读全文
摘要:tcp_server from socket import * import threading address='127.0.0.1' #监听哪些网络 127.0.0.1是监听本机 0.0.0.0是监听整个网络 port=9999 #监听自己的哪个端口 buffsize=1024 #接收从客户端发
阅读全文
摘要:udp_server.py import socket u=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) addr=("0.0.0.0",9999) u.bind(addr) print("waiting for connection........
阅读全文
摘要:tcp服务端 #!/usr/bin/python3 # -*-coding:utf-8 -*- from socket import * import time COD = 'utf-8' HOST = '0.0.0.0' # 主机ip PORT = 9999 # 端口号 BUFSIZ = 1024
阅读全文
摘要:xxx.py# coding:utf-8 import socket ip_port = ('127.0.0.1',8080) back_log = 10 buffer_size = 1024 alldata = "<h1>Hello World</h1>" def main(): webserve
阅读全文
摘要:Celery 是一个强大的 分布式任务队列 的 异步处理框架,它可以让任务的执行完全脱离主程序,甚至可以被分配到其他主机上运行。我们通常使用它来实现异步任务(async task)和定时任务(crontab)。 在Celery中几个基本的概念,需要先了解下,不然不知道为什么要安装下面的东西。概念:B
阅读全文
摘要:python用asyncio 模块实现异步编程,该模块最大特点就是,只存在一个线程 由于只有一个线程,就不可能多个任务同时运行。asyncio 是"多任务合作"模式(cooperative multitasking),允许异步任务交出执行权给其他任务,等到其他任务完成,再收回执行权继续往下执行 as
阅读全文
摘要:def customer(): r="" while True: n=yield r#,接收生产者的消息,并向消费者发送r print("customer receive",n) r="ok" def produce(c): c.send(None)#第一次启动协程必须发送None值,否则报如下错误
阅读全文
摘要:安装 pip install gevent import gevent from gevent import monkey monkey.patch_all()#捕捉所有阻塞,不止接收gevent.sleep import time def f(s): print("hello %s"%s) tim
阅读全文