UPDATED :
PORT = 33123
HOST = '127.0.0.1'
LASTLINE = '#'
import asyncio
import os
@asyncio.coroutine
def tcp_echo_client(offset):
def send(offset):
MSG = '{'+"ClientId"+':'+"%s" % (str(offset))+'}'
print("> " + MSG)
writer.write((MSG ).encode("utf-8"))
yield from writer.drain()
def recv():
msgback = (yield from reader.readline()).decode("utf-8").rstrip()
print("< " + msgback)
return msgback
reader, writer = yield from asyncio.open_connection(HOST, port=PORT)
print(reader)
print('Waiting 3 sec for response...')
while True:
try:
response = yield from asyncio.wait_for(reader.readline(), timeout=100000.0)
print(response)
if str(response).find('GetClientInfo') > 0:
send(int(offset))
yield from asyncio.sleep(0.5)
except:
print ('Error')
@asyncio.coroutine
def do_work(task_name, work_queue):
while not work_queue.empty():
queue_item = yield from work_queue.get()
print('{0} grabbed item: {1}'.format(task_name, queue_item))
asyncio.Task(tcp_echo_client(offset=queue_item))
yield from asyncio.sleep(0.1)
if __name__ == "__main__":
q = asyncio.Queue()
for x in range(1):
q.put_nowait(x)
print(q)
loop = asyncio.get_event_loop()
tasks = [
asyncio.async(do_work('task1', q)),
asyncio.async(do_work('task2', q)),
asyncio.async(do_work('task3', q)),
asyncio.async(do_work('task4', q)),
asyncio.async(do_work('task5', q)),
asyncio.async(do_work('task6', q))
]
loop.run_until_complete(asyncio.wait(tasks))
loop.run_forever()
loop.close()
Thanks