1 USING: accessors arrays concurrency.flags fry io io.encodings.ascii
2 io.encodings.utf8 io.servers.private io.sockets kernel namespaces
3 sequences sets threads tools.test ;
6 { t } [ ascii <threaded-server> listen-on empty? ] unit-test
9 ascii <threaded-server>
10 25 internet-server >>insecure
16 T{ inet4 f "1.2.3.4" 1234 } T{ inet4 f "1.2.3.5" 1235 }
17 [ log-connection ] 2keep
18 [ remote-address get = ] [ local-address get = ] bi*
22 { } [ ascii <threaded-server> init-server drop ] unit-test
25 ascii <threaded-server>
27 init-server semaphore>> count>>
31 ascii <threaded-server>
34 [ "Hello world." write stop-this-server ] >>handler
36 insecure-addr ascii <client> drop stream-contents
37 ] with-threaded-server
41 ascii <threaded-server>
44 start-server [ '[ _ wait-for-server ] in-thread ] [ stop-server ] bi
49 ascii <threaded-server>
50 "localhost" 1234 inet boa >>insecure
57 ! Test that we can listen on several ports at once.
58 TUPLE: my-threaded-server < threaded-server ;
61 utf8 my-threaded-server new-threaded-server
70 start-server stop-server
75 ascii <threaded-server> HS{ } clone 2dup adjoin
77 ] [ server-already-running? ] must-fail-with
81 ascii <threaded-server> <flag> >>server-stopped
83 ] [ server-not-running? ] must-fail-with