1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zhengyitian-tcp_over_udp

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
testStream.py 1.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Your Name Отправлено 11.08.2019 08:51 d8a6372
import threading
from tornado.locks import Event
from tornado.ioloop import IOLoop
from tornado import gen
from helpFunc import *
import time
class ts():
def __init__(self,ioloop):
self.ioloop = ioloop
self.rEvent = Event()
self.wEvent = Event()
self.writeLock = threading.Lock()
self.readLock = threading.Lock()
self.writeBuffer = b''
self.readBuffer = b''
IOLoop.current().add_callback(self.doRead)
IOLoop.current().add_callback(self.doWrite)
@gen.coroutine
def doRead(self):
co = 0
while True:
yield self.rEvent.wait()
self.rEvent.clear()
while True:
msg = TOUMsg()
self.readLock.acquire()
r,self.readBuffer = msg.unpack(self.readBuffer)
self.readLock.release()
if not r:
break
co += 1
if co%10==0:
print ('co1',co,getRunningTime())
@gen.coroutine
def doWrite(self):
co = 0
while True:
yield self.wEvent.wait()
self.wEvent.clear()
while True:
if len(self.writeBuffer)>con_streamBufferSize:
break
yield gen.sleep(random.randint(3,20)/10.0)
msg = TOUMsg({},b's'*random.randint(10,2000))
self.writeLock.acquire()
self.writeBuffer += msg.pack()
self.writeLock.release()
co += 1
if co%10==0:
print ('co2',co,getRunningTime())

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/zhengyitian-tcp_over_udp.git
git@api.gitlife.ru:oschina-mirror/zhengyitian-tcp_over_udp.git
oschina-mirror
zhengyitian-tcp_over_udp
zhengyitian-tcp_over_udp
master