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