changeset 698: | 96958d3eb5b0 |
parent: | aac665e2f5bf |
author: | Richard Westhaver <ellis@rwest.io> |
date: | Fri, 04 Oct 2024 22:04:59 -0400 |
permissions: | -rw-r--r-- |
description: | fixes |
267
f3d814fb136a
db upgrades, alik, ignoring c files (for now)
Richard Westhaver <ellis@rwest.io>
parents:
160
diff
changeset
|
1 | ;;; net/tcp.lisp --- TCP utilities |
f3d814fb136a
db upgrades, alik, ignoring c files (for now)
Richard Westhaver <ellis@rwest.io>
parents:
160
diff
changeset
|
2 | |
f3d814fb136a
db upgrades, alik, ignoring c files (for now)
Richard Westhaver <ellis@rwest.io>
parents:
160
diff
changeset
|
3 | ;; |
f3d814fb136a
db upgrades, alik, ignoring c files (for now)
Richard Westhaver <ellis@rwest.io>
parents:
160
diff
changeset
|
4 | |
f3d814fb136a
db upgrades, alik, ignoring c files (for now)
Richard Westhaver <ellis@rwest.io>
parents:
160
diff
changeset
|
5 | ;;; Code: |
105 | 6 | (in-package :net/tcp) |
7 | ||
8 | (defun tcp-server (port) |
|
9 | (let ((s (make-instance 'inet-socket :type :stream :protocol :tcp))) |
|
10 | (socket-bind s #(0 0 0 0) port) |
|
11 | (loop |
|
160 | 12 | (multiple-value-bind (buf len addr port) (socket-receive s nil 500) |
13 | (format t "Received ~A bytes from ~A:~A - ~A ~%" |
|
14 | len addr port (subseq buf 0 (min 10 len))))))) |
|
356
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
15 | |
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
16 | (defvar *tcp-ping-size* 512) |
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
17 | |
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
18 | (defun tcp-ping-server (port &key (count 16)) |
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
19 | (let ((s (make-instance 'inet-socket :type :stream :protocol :tcp))) |
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
20 | (socket-bind s #(0 0 0 0) port) |
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
21 | (loop for i from 0 upto count |
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
22 | do (multiple-value-bind (buf len address port) (socket-receive s nil *tcp-ping-size*) |
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
23 | (format t "(~A) Received ~A bytes from ~A:~A - ~A ~%" |
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
24 | i len address port (subseq buf 0 (min 10 len)))) |
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
25 | finally (socket-close s)))) |
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
26 | |
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
27 | (defmacro with-tcp-client ((socket-var &key (addr #(0 0 0 0)) (port 0) peer) &body body) |
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
28 | `(let ((,socket-var (make-instance 'inet-socket :type :stream :protocol :tcp))) |
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
29 | (unwind-protect |
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
30 | (progn |
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
31 | (socket-bind ,socket-var ,addr ,port) |
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
32 | ,(when peer `(apply #'socket-connect ,socket-var ,peer)) |
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
33 | ,@body) |
aac665e2f5bf
stashed and revert some obj/color changes. added x/wayland feature splits, WITH-TCP-CLIENT and WITH-UDP-CLIENT impl (no tests)
Richard Westhaver <ellis@rwest.io>
parents:
267
diff
changeset
|
34 | (socket-close ,socket-var)))) |