mirror of
				https://github.com/janet-lang/janet
				synced 2025-10-31 07:33:01 +00:00 
			
		
		
		
	 4d21b582c7
			
		
	
	4d21b582c7
	
	
	
		
			
			Handle errors earlier, and allow 0 length packets from UDP but not from TCP. This should more closely follow the exact specs of send and recv calls.
		
			
				
	
	
		
			21 lines
		
	
	
		
			556 B
		
	
	
	
		
			Janet
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			556 B
		
	
	
	
		
			Janet
		
	
	
	
	
	
| (defn handler
 | |
|   "Simple handler for connections."
 | |
|   [stream]
 | |
|   (defer (:close stream)
 | |
|     (def id (gensym))
 | |
|     (def b @"")
 | |
|     (print "Connection " id "!")
 | |
|     (while (:read stream 1024 b)
 | |
|       (repeat 10 (print "work for " id " ...") (ev/sleep 0.1))
 | |
|       (:write stream b)
 | |
|       (buffer/clear b))
 | |
|     (printf "Done %v!" id)))
 | |
| 
 | |
| # Run server.
 | |
| (let [server (net/server "127.0.0.1" "8000")]
 | |
|   (print "Starting echo server on 127.0.0.1:8000")
 | |
|   (forever
 | |
|     (if-let [conn (:accept server)]
 | |
|       (ev/call handler conn)
 | |
|       (print "no new connections"))))
 |