File tree 2 files changed +20
-11
lines changed
2 files changed +20
-11
lines changed Original file line number Diff line number Diff line change @@ -35,6 +35,8 @@ wait 1 ;= pretending some work here...
35
35
write-udp "I'm done!"
36
36
write-udp "quit"
37
37
38
- either system/options/script [
39
- ask as-red "CLIENT DONE"
40
- ][ print as-red "CLIENT DONE" wait 0.5 ]
38
+ print as-red "CLIENT DONE"
39
+ wait 0.5
40
+ if system/options/script [
41
+ ask "ENTER to quit"
42
+ ]
Original file line number Diff line number Diff line change @@ -12,21 +12,28 @@ udp-server: try/except [open udp://:1189][
12
12
]
13
13
stdout: system/ports/output
14
14
15
- udp-server/awake: func [event] [
15
+ udp-server/awake: func [event /local port str] [
16
+ port: event/port
16
17
print ["[UDP Server] event:" event/type ]
18
+ switch event/type [
19
+ read [
20
+ str: to string! port/data
21
+ clear port/data
22
+ print ["[UDP Server] received:" as-green mold str]
23
+ if str = "quit" [port/state: 'quit]
24
+ ]
25
+ ]
17
26
;; console output is buffered and so messages could come out of order;
18
27
;; to prevent it, just use the `flush`!
19
- flush stdout
28
+ flush stdout
20
29
true
21
30
]
22
-
23
31
forever [
24
32
wait read udp-server
25
- str: to string! udp-server/data
26
- print ["[UDP Server] received:" as-green mold str]
27
- flush stdout ;= flush console buffer!
28
- if str = "quit" [close udp-server break]
29
- clear udp-server/data
33
+ if udp-server/state = 'quit [
34
+ close udp-server
35
+ break
36
+ ]
30
37
]
31
38
32
39
print as-red "SERVER DONE"
You can’t perform that action at this time.
0 commit comments