Check-in [b7b9cf1065]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:fixed survey test for nanomsg
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: b7b9cf10652e05490f5c5a6e5934f0207c4a0a8f
User & Date: ovenpasta@pizzahack.eu 2016-08-17 08:03:45
Context
2016-08-17
08:18
README.md updated a little bit check-in: fcf3c6d6b5 user: ovenpasta@pizzahack.eu tags: trunk
08:03
fixed survey test for nanomsg check-in: b7b9cf1065 user: ovenpasta@pizzahack.eu tags: trunk
07:47
added sdl2 check-in: c9770d8f7f user: ovenpasta@pizzahack.eu tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to nanomsg/survey.

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
(define date date-and-time)

(define (sleep-s sec)
  (sleep (make-time 'time-duration 0 sec)))

(define (server url)
  (define sock #f)
  (define r #f)
  (dynamic-wind 
      (lambda ()
	(set! sock (nn-socket AF_SP NN_SURVEYOR))
	(assert (>= sock 0)))
      (lambda ()
	(assert (>= (nn-bind sock url) 0))
	(sleep-s 1)
	(let* ([sz-d (string-length date-name)])

	  (printf "SERVER: SENDING DATE SURVEY REQUEST~n")
	  (assert (= (nn-send sock (string->utf8 date-name) sz-d 0) sz-d)))
	(let loop ()
	  (let* ([buf (box #t)]

		 [bytes (nn-recv sock buf NN_MSG 0)])
	    (unless (= bytes NN_ETIMEDOUT)
		    (when (>= bytes 0)
			  (printf "SERVER: RECEIVED ~d SURVEY RESPONSE~n" 
				  (utf8->string (unbox buf))))
		    (loop)))))
      (lambda ()
	(set! r (nn-shutdown sock 0))))
  r)

(define (client url name)
  (define sock #f)
  (define r #f)
  (dynamic-wind 
      (lambda ()
	(set! sock (nn-socket AF_SP NN_RESPONDENT))
	(assert (>= sock 0)))
      (lambda ()
	(assert (>= (nn-connect sock url) 0))
	(let loop ()
	  (let* ([buf (box #t)]

		 [bytes (nn-recv sock buf NN_MSG 0)])
	    (when (>= bytes 0)
		  (printf "CLIENT (~d): RECEIVED ~d SURVEY REQUEST~n" 
			  name (utf8->string (unbox buf)))
		  (printf "CLIENT (~d): SENDING DATE SURVEY RESPONSE~n" 
			  name)
		  (let* ([d (date)] [sz-d (string-length d)])
		    (assert (= (nn-send sock (string->utf8 d) sz-d 0))))
		  (loop)))))
      (lambda ()
	(set! r (nn-shutdown sock 0))))
    r)

(define argv (command-line-arguments))
(define argc (length argv))

(cond
 [(and (> argc 1) (string=? server-name (car argv)))
  (server (cadr argv))]







|


|
<

|

<
>
|
|


>
|
<
|
|
|


|
<



|


|
<

|


>
|
|




<
|


|
<







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
43

44
45
46
47
48
49
50

51
52
53
54
55
56
57
58
59
60
61

62
63
64
65

66
67
68
69
70
71
72
(define date date-and-time)

(define (sleep-s sec)
  (sleep (make-time 'time-duration 0 sec)))

(define (server url)
  (define sock #f)
  (define eid #f)
  (dynamic-wind 
      (lambda ()
	(set! sock (nn-socket AF_SP NN_SURVEYOR)))

      (lambda ()
	(set! eid (nn-bind sock url))
	(sleep-s 1)

	
	(printf "SERVER: SENDING DATE SURVEY REQUEST~n")
	(nn-send sock (string->utf8 date-name) 0)
	(let loop ()
	  (let* ([buf (box #t)]
		 [bytes (guard (x [(= (nn-errno) ETIMEDOUT) #f])
			       (nn-recv sock buf NN_MSG 0))])

	    (unless bytes
		    (printf "SERVER: RECEIVED ~d SURVEY RESPONSE~n" 
			    (utf8->string (unbox buf)))
		    (loop)))))
      (lambda ()
	(if eid (nn-shutdown sock eid)))))


(define (client url name)
  (define sock #f)
  (define eid #f)
  (dynamic-wind 
      (lambda ()
	(set! sock (nn-socket AF_SP NN_RESPONDENT)))

      (lambda ()
	(set! eid (nn-connect sock url))
	(let loop ()
	  (let* ([buf (box #t)]
		 [bytes (guard (x [else #f])
			       (nn-recv sock buf NN_MSG 0))])
	    (when bytes
		  (printf "CLIENT (~d): RECEIVED ~d SURVEY REQUEST~n" 
			  name (utf8->string (unbox buf)))
		  (printf "CLIENT (~d): SENDING DATE SURVEY RESPONSE~n" 
			  name)

		  (nn-send sock (string->utf8 (date)) 0)
		  (loop)))))
      (lambda ()
	(if eid (nn-shutdown sock eid)))))


(define argv (command-line-arguments))
(define argc (length argv))

(cond
 [(and (> argc 1) (string=? server-name (car argv)))
  (server (cadr argv))]