udp-one-shot.lisp - clic - Clic is an command line interactive client for gopher written in Common LISP
(HTM) git clone git://bitreich.org/clic/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/clic/
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Tags
(DIR) README
(DIR) LICENSE
---
udp-one-shot.lisp (4259B)
---
1 ;;;; -*- Mode: LISP; Base: 10; Syntax: ANSI-Common-lisp; Package: USOCKET-TEST -*-
2
3 (in-package :usocket-test)
4
5 ;; Test code from "INVALID-ARGUMENT-ERROR on socket-receive (#48)"
6
7 ;; Author: @4lph4-Ph4un
8 ;; Environment: SBCL 1.4.16, WSL on Windows 10
9
10 (defun UDP-one-shot-V1 (&optional (port 1232))
11 (let ((socket (usocket:socket-connect
12 nil
13 nil
14 :protocol :datagram
15 :element-type '(unsigned-byte 8)
16 :local-host "127.0.0.1"
17 :local-port port))
18 (buffer (make-array 8 :element-type '(unsigned-byte 8))))
19 (unwind-protect
20 (multiple-value-bind (received size remote-host remote-port)
21 ;; NOTE: An explicit buffer can be given. If the length
22 ;; is nil buffer's length will be used.
23 (usocket:socket-receive socket buffer 8)
24 (format t "~A~%" received)
25 (usocket:socket-send socket
26 (reverse received)
27 size
28 :host remote-host
29 :port remote-port))
30 (usocket:socket-close socket))))
31
32 #|
33 Backtrace:
34 0: (USOCKET::HANDLE-CONDITION #<SB-BSD-SOCKETS:INVALID-ARGUMENT-ERROR {100375B833}> #<USOCKET:DATAGRAM-USOCKET {100375B773}>)
35 Locals:
36 CONDITION = #<SB-BSD-SOCKETS:INVALID-ARGUMENT-ERROR {100375B833}>
37 SOCKET = #<USOCKET:DATAGRAM-USOCKET {100375B773}>
38 1: (SB-KERNEL::%SIGNAL #<SB-BSD-SOCKETS:INVALID-ARGUMENT-ERROR {100375B833}>)
39 Locals:
40 CONDITION = #<SB-BSD-SOCKETS:INVALID-ARGUMENT-ERROR {100375B833}>
41 HANDLER-CLUSTERS = (((#<SB-KERNEL::CLASSOID-CELL SB-IMPL::EVAL-ERROR> . #<CLOSURE # {7F0C5FD9DE0B}>)) ((#<SB-KERNEL::CLASSOID-CELL SB-C:COMPILER-ERROR> . #<FUNCTION # {5222748B}>)) ..)
42 2: (ERROR SB-BSD-SOCKETS:INVALID-ARGUMENT-ERROR :ERRNO 22 :SYSCALL "recvfrom")
43 Locals:
44 CONDITION = #<SB-BSD-SOCKETS:INVALID-ARGUMENT-ERROR {100375B833}>
45 #:G8039 = SB-BSD-SOCKETS:INVALID-ARGUMENT-ERROR
46 SB-DEBUG::MORE = (:ERRNO 22 :SYSCALL "recvfrom")
47 3: (SB-BSD-SOCKETS:SOCKET-ERROR "recvfrom" 22)
48 Locals:
49 ERRNO = 22
50 WHERE = "recvfrom"
51 4: ((FLET SB-BSD-SOCKETS::WITH-SOCKET-ADDR-THUNK :IN SB-BSD-SOCKETS:SOCKET-RECEIVE) #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X7F0C58001230 :TYPE (* (SB-ALIEN:STRUCT SB-BSD-SOCKETS-INTERNAL::SOCKADDR-IN (SB..
52 Locals:
53 SB-BSD-SOCKETS::COPY-BUFFER = #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X7F0C58001250 :TYPE (* (ARRAY (SB-ALIEN:UNSIGNED 8) 1))>
54 SB-BSD-SOCKETS::SIZE = 16
55 SB-BSD-SOCKETS::SOCKADDR = #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X7F0C58001230 :TYPE (* ..)>
56 5: (SB-BSD-SOCKETS::CALL-WITH-SOCKET-ADDR #<SB-BSD-SOCKETS:INET-SOCKET 127.0.0.1:1232, fd: 3 {100375B203}> NIL #<CLOSURE (FLET SB-BSD-SOCKETS::WITH-SOCKET-ADDR-THUNK :IN SB-BSD-SOCKETS:SOCKET-RECEIVE) {7..
57 Locals:
58 SOCKADDR = #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X7F0C58001230 :TYPE (* ..)>
59 SOCKADDR-ARGS = NIL
60 SOCKET = #<SB-BSD-SOCKETS:INET-SOCKET 127.0.0.1:1232, fd: 3 {100375B203}>
61 THUNK = #<CLOSURE (FLET SB-BSD-SOCKETS::WITH-SOCKET-ADDR-THUNK :IN SB-BSD-SOCKETS:SOCKET-RECEIVE) {7F0C5FD9DB8B}>
62 6: ((:METHOD SB-BSD-SOCKETS:SOCKET-RECEIVE (SB-BSD-SOCKETS:SOCKET T T)) #<SB-BSD-SOCKETS:INET-SOCKET 127.0.0.1:1232, fd: 3 {100375B203}> #(0 0 0 0 0 0 ...) 8 :OOB NIL :PEEK NIL :WAITALL NIL :DONTWAIT NIL..
63 Locals:
64 #:.DEFAULTING-TEMP. = (UNSIGNED-BYTE 8)
65 SB-BSD-SOCKETS::BUFFER = #(0 0 0 0 0 0 ...)
66 SB-BSD-SOCKETS::BUFFER#1 = #(0 0 0 0 0 0 ...)
67 SB-BSD-SOCKETS::DONTWAIT = NIL
68 SB-BSD-SOCKETS::ELEMENT-TYPE = (UNSIGNED-BYTE 8)
69 LENGTH = 8
70 LENGTH#1 = 8
71 SB-BSD-SOCKETS::OOB = NIL
72 SB-BSD-SOCKETS::PEEK = NIL
73 SB-BSD-SOCKETS:SOCKET = #<SB-BSD-SOCKETS:INET-SOCKET 127.0.0.1:1232, fd: 3 {100375B203}>
74 SB-BSD-SOCKETS::WAITALL = NIL
75 7: ((:METHOD USOCKET:SOCKET-RECEIVE (USOCKET:DATAGRAM-USOCKET T T)) #<USOCKET:DATAGRAM-USOCKET {100375B773}> #(0 0 0 0 0 0 ...) 8 :ELEMENT-TYPE (UNSIGNED-BYTE 8)) [fast-method]
76 Locals:
77 USOCKET::BUFFER = #(0 0 0 0 0 0 ...)
78 USOCKET::ELEMENT-TYPE = (UNSIGNED-BYTE 8)
79 LENGTH = 8
80 USOCKET:SOCKET = #<USOCKET:DATAGRAM-USOCKET {100375B773}>
81 8: (MASTER-CLASS/SRC/SERVER-03:UDP-ONE-SHOT-V1 1232)
82 Locals:
83 PORT = 1232
84 SOCKET = #<USOCKET:DATAGRAM-USOCKET {100375B773}>
85 |#
86