75 lines
1.6 KiB
Scheme
75 lines
1.6 KiB
Scheme
(import (scheme base)
|
|
(scheme write)
|
|
(scheme read)
|
|
(scheme char)
|
|
(scheme file)
|
|
(scheme process-context)
|
|
(retropikzel tap)
|
|
(foreign c)
|
|
(srfi 64)
|
|
(srfi 106))
|
|
|
|
(test-runner-current (tap-runner))
|
|
|
|
(test-begin "106")
|
|
|
|
|
|
(test-begin "TCP Client")
|
|
|
|
(test-begin "URL")
|
|
(let ((sock (make-client-socket "tcpbin.com" "4242"))
|
|
(msg "Hello world!"))
|
|
(socket-send sock (string->utf8 msg))
|
|
(test-equal msg (utf8->string (socket-recv sock (string-length msg))))
|
|
(socket-close))
|
|
(test-begin "URL")
|
|
|
|
(test-end "TCP Client")
|
|
|
|
|
|
#|
|
|
(define sock1-port "3005")
|
|
(define sock2-port "3006")
|
|
|
|
(define-c-library libc `("stdlib.h") #f '())
|
|
(define-c-procedure c-system libc 'system 'int '(pointer))
|
|
|
|
(display "Testing TCP socket")
|
|
(newline)
|
|
|
|
;(debug (address-family inet))
|
|
;(debug (address-info v4mapped addrconfig))
|
|
;(debug (socket-domain stream))
|
|
;(debug (ip-protocol ip))
|
|
|
|
(c-system (string->c-bytevector (string-append "echo \"lol\" | nc -l " sock1-port "&")))
|
|
|
|
(define sock1 (make-client-socket "127.0.0.1" sock1-port))
|
|
|
|
;(debug sock1)
|
|
(write (utf8->string (socket-recv sock1 3)))
|
|
(newline)
|
|
|
|
(socket-send sock1 (string->utf8 "Hello from sock1\n"))
|
|
|
|
(socket-close sock1)
|
|
|
|
|
|
(define sock2 (make-server-socket sock2-port))
|
|
;(debug sock2)
|
|
|
|
(display (string-append "run: echo \"lol\" | nc 127.0.0.1 " sock2-port))
|
|
(newline)
|
|
|
|
(define client-sock1 (socket-accept sock2))
|
|
;(debug client-sock1)
|
|
|
|
(socket-send client-sock1 (string->utf8 "Hello from client-sock1\n"))
|
|
|
|
(write (utf8->string (socket-recv client-sock1 3)))
|
|
(newline)
|
|
|
|
|#
|
|
|
|
(test-end "106")
|