问题标签 [usocket]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
156 浏览

sockets - List 中的双向套接字

我正在尝试使用 TCP/IP 套接字(在 Linux 系统中使用 sbcl 和 usocket 库)从 Lisp 脚本与另一个程序进行通信。

到目前为止,我得到了这段代码:

该代码运行良好,但注释行除外:

所以我能够从另一个套接字(另一个程序)发送和接收消息 1,2,3 ...,并将消息从另一个程序发送回 lisp。但是,当我取消注释从 lisp 读取消息的行时,上面的代码似乎停止并永远等待。

0 投票
1 回答
381 浏览

common-lisp - SBCL 上的 USocket:连接被拒绝(Drakma 和 Dex)

运行简单的 HTTP 请求:

失败并出现错误(dex堆栈跟踪)

或(drakma堆栈跟踪)

在Clozure Common Lisp 版本 1.11.5 (DarwinX8664)上运行相同的请求效果很好。

有人知道原因吗?

0 投票
1 回答
207 浏览

sockets - Drakma 和 Dexador 在仅请求本地主机时都在 USocket 调用中失败,请求互联网工作正常

目前对我来说有一个无法解释的行为,感谢任何线索。

背景

我通过 PHP 内置开发 webserver 有一个本地运行的 wordpress 实例php -S localhost:8000 -t /doc/root/wordpress。该网站有效,我可以curl "http://localhost:8000/"成功获取它,我也可以在网络浏览器中打开它。

但简单的程序,如:

或者

——都失败了。

drakma回溯失败:

有趣的是,如果我将 URI 更改为 Internet 上的任何其他 URI:

- 然后它工作正常。

所以问题可能出在我的本地机器和本地 php-server 的上下文中。这些简单的函数调用可能有什么问题?

我的笔记

  • 在回溯中,我看到了这条线(USOCKET:SOCKET-CONNECT "localhost" 8000 :PROTOCOL :STREAM :ELEMENT-TYPE FLEXI-STREAMS:OCTET :TIMEOUT 20 :DEADLINE NIL :NODELAY :IF-SUPPORTED :LOCAL-HOST NIL :LOCAL-PORT NIL)。键:local-host:local-port都是nil。可能这就是问题所在,因为根据usocket 规范,这些参数负责调用bind()本地地址(它与调用非本地地址有什么不同吗?)。

  • 我也没有在规范中找到drakma:http-request任何特殊参数来指定我正在请求本地服务器。根据示例https://edicl.github.io/drakma/#ex-basic-auth,请求任何 URI 都很简单,并且没有任何“本地地址”与非本地的区别。

加起来

  • 为什么请求“ http://localhost:8000 ”不适用于drakmaor dexador。是否有人可以确认本地 Web 服务器的相同行为?

  • bind()对于本地和非本地地址,系统调用是否有所不同?


PS我已经问过类似的问题,首先似乎问题出在旧软件版本上。现在我发现了问题的更多细节并改写了它,所以我在这里提出另一个问题。


更新 1

也许,问题与用于开发的特定 PHP 内置网络服务器有关,因为该问题只能通过 PHP 网络服务器 + SBCL + Drakma 重现。但是 PHP 网络服务器可以很好地用于curlGo 客户端、网络浏览器。

PHP版本:

PHP 7.3.1 (cli) (built: Jan 10 2019 13:16:34) (NTS) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.1, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.1,版权所有 (c) 1999-2018,由 Zend Technologies 提供

-- 随brew install php.

重现步骤

服务器:

然后与客户一起尝试:

-- 工作正常(状态码 404 预期并收到)。

语言:

-- 失败(状态码 404 是预期的,但connection refused被返回)。

0 投票
0 回答
85 浏览

common-lisp - 错误:条件 Bad address (error #14) ,无法在 Clozure CL 上运行 Huntentoot

我正在尝试在 IBM power6 上运行 hunchentoot,但该平台上只有 clozure cl 可用。我试过这个:

1.lisp

然后我将它加载到 ccl 中:

我不知道如何解决它。

0 投票
0 回答
266 浏览

python - micropython usocket.IPPROTO_SEC 不可用

我尝试将usocket.IPPROTO_SEC用于 micropython,但它似乎不可用。我还应该做些什么来访问usocket.IPPROTO_SEC吗?

设置

我使用这个泊坞窗图像。

微蟒版本:1.11

描述

micropython 文档说usocket.IPPROTO_SEC是一个可用的常量,但是当我尝试访问它时,它不存在。

下面的输出显示了我如何尝试访问它以及 usocket 中可用的属性是什么。

0 投票
1 回答
167 浏览

common-lisp - 在这个 Common Lisp 示例中,socket-close 的目的是什么?

我从 Common Lisp Cookbook 中找到了这个例子,它展示了如何使用 usocket 启动 TCP 服务器。

该示例创建一个套接字对象并建立连接,然后写入套接字。万一发生错误,套接字写入被包裹在一个 unwind-protect 中,它将关闭套接字以便它可以被重用。我已经重写了导致错误的示例,但是当我多次运行它时,我得到一个USOCKET:ADDRESS-IN-USE-ERROR. socket-close如果我删除函数调用,行为是相同的。

0 投票
1 回答
379 浏览

esp8266 - 在 MicroPython 中使用轮询的非阻塞服务器套接字问题

我正在尝试组装一个简单的温度计,它可以在 OLED 显示屏上提供温度,也可以通过使用 MicroPython 的 ESP8266 上的 http 请求提供温度。

轮询对象已用于防止websocket阻塞循环(因此可以更新测量值和 OLED 显示)。

它似乎在一段时间内运行良好,但我发现了两个问题,希望能得到您的帮助:

  1. 即使我只连接一次,在 shell 终端中也会显示2 或 3 个请求,如下所示。为什么会发生这种情况,我该如何解决?是否可以让浏览器等待足够长的时间来发送第二个或第三个请求?
  1. 运行一段时间后,我将无法再连接到它,因为它不会响应。我的方法明显有问题吗?这是我从控制台得到的:

第 104 行对应于:

谢谢!

0 投票
0 回答
30 浏览

common-lisp - 错误:未找到外部函数:X86-DARWIN64::|gethostname|

将 usocket 快速加载到 Clozure Common Lisp 时出现以下错误

我正在使用带有 Mac OS 10.14.1 的 Macbook Pro,我今天从 CCL 1.12-dev 升级到 CCL 1.12.1,所以也许这就是导致问题的原因。

关于如何解决这个问题的任何建议?

我尝试下载 clozure CL 的 Mac App Store 版本,但崩溃了:

解决这个问题也可能完成这项工作。