udp-one-shot.lisp - clic - Clic is an command line interactive client for gophe… | |
git clone git://bitreich.org/clic/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65… | |
Log | |
Files | |
Refs | |
Tags | |
README | |
LICENSE | |
--- | |
udp-one-shot.lisp (4259B) | |
--- | |
1 ;;;; -*- Mode: LISP; Base: 10; Syntax: ANSI-Common-lisp; Package: USOCKE… | |
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 … | |
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 {100375… | |
39 Locals: | |
40 CONDITION = #<SB-BSD-SOCKETS:INVALID-ARGUMENT-ERROR {100375B833}> | |
41 HANDLER-CLUSTERS = (((#<SB-KERNEL::CLASSOID-CELL SB-IMPL::EVAL-E… | |
42 2: (ERROR SB-BSD-SOCKETS:INVALID-ARGUMENT-ERROR :ERRNO 22 :SYSCALL "re… | |
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:SO… | |
52 Locals: | |
53 SB-BSD-SOCKETS::COPY-BUFFER = #<SB-ALIEN-INTERNALS:ALIEN-VALUE :… | |
54 SB-BSD-SOCKETS::SIZE = 16 | |
55 SB-BSD-SOCKETS::SOCKADDR = #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP… | |
56 5: (SB-BSD-SOCKETS::CALL-WITH-SOCKET-ADDR #<SB-BSD-SOCKETS:INET-SOCKET… | |
57 Locals: | |
58 SOCKADDR = #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X7F0C58001230 … | |
59 SOCKADDR-ARGS = NIL | |
60 SOCKET = #<SB-BSD-SOCKETS:INET-SOCKET 127.0.0.1:1232, fd: 3 {100… | |
61 THUNK = #<CLOSURE (FLET SB-BSD-SOCKETS::WITH-SOCKET-ADDR-THUNK :… | |
62 6: ((:METHOD SB-BSD-SOCKETS:SOCKET-RECEIVE (SB-BSD-SOCKETS:SOCKET T T)… | |
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:1… | |
74 SB-BSD-SOCKETS::WAITALL = NIL | |
75 7: ((:METHOD USOCKET:SOCKET-RECEIVE (USOCKET:DATAGRAM-USOCKET T T)) #<… | |
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 |