Skip to content

Commit eb306d8

Browse files
author
Roberto De Ioris
authored
Update AsyncIOAndUnrealEngine.md
1 parent e0520b9 commit eb306d8

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

tutorials/AsyncIOAndUnrealEngine.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,40 @@ for task in asyncio.Task.all_tasks():
147147
task.cancel()
148148
```
149149

150+
## A simple tcp server spawning Character's in the editor
151+
152+
```python
153+
import asyncio
154+
import ue_asyncio
155+
from unreal_engine.classes import Character
156+
157+
for task in asyncio.Task.all_tasks():
158+
task.cancel()
159+
160+
async def new_client_connected(reader, writer):
161+
name = writer.get_extra_info('peername')
162+
ue.log('new client connection from {0}'.format(name))
163+
while True:
164+
data = await reader.readline()
165+
if not data:
166+
break
167+
ue.log('client {0} issued: {1}'.format(name, data.decode()))
168+
new_actor = ue.get_editor_world().actor_spawn(Character)
169+
new_actor.set_actor_label(data.decode())
170+
ue.log('client {0} disconnected'.format(name))
171+
172+
async def spawn_server(host, port):
173+
try:
174+
coro = await asyncio.start_server(new_client_connected, host, port)
175+
ue.log('tcp server spawned on {0}:{1}'.format(host, port))
176+
await coro.wait_closed()
177+
finally:
178+
coro.close()
179+
ue.log('tcp server ended')
180+
181+
asyncio.ensure_future(spawn_server('192.168.173.45', 8885))
182+
```
183+
150184

151185
## asyncio in your actors
152186

0 commit comments

Comments
 (0)