File: server

package info (click to toggle)
newlisp 10.7.5-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 6,248 kB
  • sloc: ansic: 33,280; lisp: 4,181; sh: 609; makefile: 215
file content (42 lines) | stat: -rwxr-xr-x 905 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/env newlisp

;; server for client/server demo
;;
;; USAGE: server
;;
;; Start the client programm in a different
;; terminal window or on a different computer
;; See the 'client' file for more info.
;;
;; v 1.1
;; v 1.2 change net-receive for 10.0
;;

(define (net-server-accept listenSocket)
  (while online 
    (set 'connect (net-accept listenSocket)) 
	(net-send connect "Connected!\n")
	(while (net-server-receive connect))))

(define (net-server-receive socket , str)
  (net-receive socket str 256)
  (print "received:" str "\n")
  (if (= str "quit") 
   (begin 
    (net-send socket "bye bye!") 
    (net-close socket) nil) 
   (net-send socket (upper-case str))))

(define (server)
  (if (not (set 'socket (net-listen 1111))) 
   (print "Listen failed:\n" (net-error)) 
   (begin
	(set 'online true)
   	(print "\nServer started\n")
	(net-server-accept socket)
	)))

(server)

; eof ;