- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 Common Lisp 的新手,我正在尝试学习如何使用网络套接字进行编程。在普通的 lisp 中 usocket api它指定函数 socket-send
和 socket-receive
采用 simple-array (unsigned-byte 8)
缓冲区。
我对 lisp 太陌生了,无法理解如何在 sbcl common lisp 中实现这一点。看来我可以使用函数 vector
和 make-array
但不能使用 simple-array
,也不能将类型指定为 unsigned -字节 8
。
像下面这样的东西是否合理且类型安全?:
(let ((buffer (make-array (list-length input))) (input-length (list-length input)) )
(loop
for i upto input-length collect i do
(setf (nth i buffer) (parse-integer (nth i input))))
(usocket::socket-send socket buffer input-length)))
如果没有,我该如何制作我需要的缓冲区?
最佳答案
CL-USER 25 > (make-array 10
:element-type '(unsigned-byte 8)
:initial-element 0)
#(0 0 0 0 0 0 0 0 0 0)
CL-USER 26 > (describe *)
#(0 0 0 0 0 0 0 0 0 0) is a (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (10))
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
映射:
CL-USER 32 > (map '(simple-array (unsigned-byte 8) (*)) #'char-code "foobarbaz")
#(102 111 111 98 97 114 98 97 122)
或更简单
CL-USER 33 > (map '(vector (unsigned-byte 8)) #'char-code "foobarbaz")
#(102 111 111 98 97 114 98 97 122)
返回:
CL-USER 34 > (map 'string #'code-char #(102 111 111 98 97 114 98 97 122))
"foobarbaz"
关于arrays - 如何创建特定类型的通用 lisp (SBCL) 向量以在 usocket 中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45526302/
我正在学习 common-lisp,我正在尝试使用 usocket library 使用客户端和服务器 tcp 套接字连接编写一个愚蠢的聊天程序.下面是我的函数。 (defun receive-thr
我有一个使用 quicklisp 加载 zs3 以访问 Amazon 的 S3 的脚本。 当我使用 clisp 运行脚本时,当 (zs3:bucket-exists-p "Test") 运行时,USO
据我了解,IOLib和 usocket具有几乎相同的抽象级别。 IOLib 使用操作系统后端套接字,另一方面 usocket 使用 Lisp 运行时后端套接字。 我只是想知道对于特定用例哪个是更好的选
我正在尝试使用 lisp 中的套接字来创建连接。使用 sbcl,我发现“usocket”可用。但是我未能在服务器和客户端之间发送字符串。这是代码: 服务器: (ql:quickload "usocke
我正在尝试通过 USOCKET 发送数据.当数据到达服务器时,服务器应该回复。但是,stream-read(定义如下)仅在数据与它发送的原始数据回显时才返回数据。例如,如果我发送 hello 并且服务
我正在尝试连接到泥客户端,所以我使用 usockets 通过 tcp 进行连接。但是在我写完之后,我得到了一个解码错误读数。我有理由相信编码应该是 ascii,或者至少使用 :clrf 作为行尾指示符
我是 Common Lisp 的新手,我正在尝试学习如何使用网络套接字进行编程。在普通的 lisp 中 usocket api它指定函数 socket-send 和 socket-receive 采用
我正在尝试升级协议(protocol),从 HTTP 1.1 切换到 WebSockets。我试过使用 usocket .到目前为止我的代码如下(并且可以作为 GitHub gist 获得)。握手读取
目前我有一个无法解释的行为,感谢任何线索。 背景 我有一个通过 PHP 内置开发网络服务器本地运行的 WordPress 实例 php -S localhost:8000 -t/doc/root/wo
我正在使用以下代码获取 url http://brandonhsiao.com/essays.html: (defparameter *new-line* '(#\Return #\Newline))
我是一名优秀的程序员,十分优秀!