47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Factor
		
	
	
| USING: accessors calendar concurrency.promises fry io
 | |
| io.encodings.ascii io.servers
 | |
| io.servers.private io.sockets kernel namespaces
 | |
| sequences threads tools.test ;
 | |
| IN: io.servers
 | |
| 
 | |
| [ t ] [ ascii <threaded-server> listen-on empty? ] unit-test
 | |
| 
 | |
| [ f ] [
 | |
|     ascii <threaded-server>
 | |
|         25 internet-server >>insecure
 | |
|     listen-on
 | |
|     empty?
 | |
| ] unit-test
 | |
| 
 | |
| [ t ] [
 | |
|     T{ inet4 f "1.2.3.4" 1234 } T{ inet4 f "1.2.3.5" 1235 }
 | |
|     [ log-connection ] 2keep
 | |
|     [ remote-address get = ] [ local-address get = ] bi*
 | |
|     and
 | |
| ] unit-test
 | |
| 
 | |
| [ ] [ ascii <threaded-server> init-server drop ] unit-test
 | |
| 
 | |
| [ 10 ] [
 | |
|     ascii <threaded-server>
 | |
|         10 >>max-connections
 | |
|     init-server semaphore>> count>> 
 | |
| ] unit-test
 | |
| 
 | |
| [ "Hello world." ] [
 | |
|     ascii <threaded-server>
 | |
|         5 >>max-connections
 | |
|         0 >>insecure
 | |
|         [ "Hello world." write stop-this-server ] >>handler
 | |
|     [
 | |
|         insecure-addr ascii <client> drop stream-contents
 | |
|     ] with-threaded-server
 | |
| ] unit-test
 | |
| 
 | |
| [ ] [
 | |
|     ascii <threaded-server>
 | |
|         5 >>max-connections
 | |
|         0 >>insecure
 | |
|     start-server [ '[ _ wait-for-server ] in-thread ] [ stop-server ] bi
 | |
| ] unit-test
 |