- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在非常努力地开发一个涉及 SCTP 协议(protocol)的业余爱好程序,为了掌握基础知识,我尝试安装 socat使用homebrew ,socat是一个类似netcat的工具,用于测试各种协议(protocol)。但到目前为止,在 OS X Mountain Lion 上还没有取得任何成功。这是安装和错误日志:
$ brew install socat
==> Installing socat dependency: readline
==> Downloading http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz
######################################################################## 100.0%
tar: Failed to set default locale
==> Patching
patching file callback.c
patching file input.c
patching file patchlevel
patching file support/shobj-conf
patching file vi_mode.c
==> ./configure --prefix=/usr/local/Cellar/readline/6.2.4 --mandir=/usr/local/Ce
==> make install
==> Caveats
This formula is keg-only: so it was not symlinked into /usr/local.
OS X provides the BSD libedit library, which shadows libreadline.
In order to prevent conflicts when programs look for libreadline we are
defaulting this GNU Readline installation to keg-only.
Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:
LDFLAGS: -L/usr/local/opt/readline/lib
CPPFLAGS: -I/usr/local/opt/readline/include
==> Summary
?? /usr/local/Cellar/readline/6.2.4: 31 files, 1.6M, built in 34 seconds
==> Installing socat
==> Downloading http://www.dest-unreach.org/socat/download/socat-1.7.2.1.tar.bz2
######################################################################## 100.0%
tar: Failed to set default locale
==> Downloading patches
######################################################################## 100.0%
==> Patching
patching file xioexit.c
==> ./configure --prefix=/usr/local/Cellar/socat/1.7.2.1 --mandir=/usr/local/Cel
==> make install
/usr/local/Cellar/socat/1.7.2.1: 8 files, 624K, built in 41 seconds
你看,homebrew
完成了编译并成功安装了socat
。验证 SCTP 是否已启用
$ socat -V
socat by Gerhard Rieger - see www.dest-unreach.org
socat version 1.7.2.1 on Mar 25 2013 08:43:00
running on Darwin version Darwin Kernel Version 12.2.1: Thu Oct 18 12:13:47 PDT 2012; root:xnu-2050.20.9~1/RELEASE_X86_64, release 12.2.1, machine x86_64
features:
#define WITH_STDIO 1
#define WITH_FDNUM 1
#define WITH_FILE 1
#define WITH_CREAT 1
#define WITH_GOPEN 1
#define WITH_TERMIOS 1
#define WITH_PIPE 1
#define WITH_UNIX 1
#undef WITH_ABSTRACT_UNIXSOCKET
#define WITH_IP4 1
#define WITH_IP6 1
#define WITH_RAWIP 1
#define WITH_GENERICSOCKET 1
#undef WITH_INTERFACE
#define WITH_TCP 1
#define WITH_UDP 1
#define WITH_SCTP 1
#define WITH_LISTEN 1
#define WITH_SOCKS4 1
#define WITH_SOCKS4A 1
#define WITH_PROXY 1
#define WITH_SYSTEM 1
#define WITH_EXEC 1
#define WITH_READLINE 1
#undef WITH_TUN
#define WITH_PTY 1
#define WITH_OPENSSL 1
#undef WITH_FIPS
#undef WITH_LIBWRAP
#define WITH_SYCLS 1
#define WITH_FILAN 1
#define WITH_RETRY 1
#define WITH_MSGLEVEL 0 /*debug*/
尝试简单的 SCTP 连接
$ socat - sctp4:my_server:19191
2013/03/25 08:45:46 socat[18838] E socket(2, 1, 132): Protocol not supported
但它失败了。在 socat
主页上它声明了 OS X 支持,但显然 sctp 可能不支持。也许只是使用 sctp 的人太少了,我在 Google 上到处搜索这个错误,但还没有找到任何有用的东西。
我在 Gentoo/Debian 服务器上尝试了同样的事情,它们都工作得很好,我只是不能让它在 OS X 下工作。我对 OS X 世界相当陌生,有什么建议吗?
最佳答案
看起来 OS X 头文件知道 SCTP 协议(protocol),但库实际上并没有实现它。您可以使用第三方扩展来破解它。
我在 OS X 10.8.3 上得到了同样的结果。安装 socat 时,它会在配置中检测 SCTP 支持并设置WITH_SCTP 定义。
$ ./configure | grep -i sctpconfigure: WARNING: include file netpacket/packet.h not found, disabling interfacechecking whether to include SCTP support... yeschecking for IPPROTO_SCTP... yes
但是,如果您查看configure
,就会发现这是一个非常简单的测试。 “是否包含SCTP支持”是是否指定了--enable-sctp,默认是打开的。 “检查 IPPROTO_SCTP”只是定义该协议(protocol)常量是否在头文件中定义。也就是说, header 可以知道该协议(protocol)并具有表示它的值,但底层系统可能无法实际使用。我认为这里的情况就是这样:OS X 内核不提供 SCTP 实现。
较新版本的 OS X 下有对 SCTP 的“初步”第三方支持:https://nplab.fh-muenster.de/groups/wiki/wiki/f366c/ 。安装这个让 SCTP 在 Homebrew 软件的 socat
中为我工作。
[@ in ~]$ socat -d -d sctp-listen:99999 -2013/04/24 22:19:38 socat[270] E socket(2, 1, 132): Protocol not supported2013/04/24 22:19:38 socat[270] N exit(1)[✘ @ in ~]$ sudo kextload /System/Library/Extensions/SCTP.kext[✘ @ in ~]$ socat -d -d -d sctp-listen:99999 -[...snip...]2013/04/24 22:20:51 socat[291] I socket(2, 1, 132) -> 32013/04/24 22:20:51 socat[291] I starting accept loop2013/04/24 22:20:51 socat[291] N listening on LEN=16 AF=2 0.0.0.0:34463
警告:这是一个第三方内核扩展,它是“初步的”,没有大量的文档,而且我不能保证来源。这可能很脆弱,并且可能很难从错误中恢复。我会在虚拟机中执行此操作,而不是在主机中执行此操作。虚拟机非常适合试验低级内容和各种机器配置。 (举个例子:为了解决这个问题,我以 root 身份对我的机器进行了一系列的修改,并做了一些有问题的事情,然后,我将我的虚拟机恢复到快照,就好像它从未发生过一样。)
另一个选择是查看 libusrsctp
中的“用户层”(非内核)SCTP 支持,可在 Homebrew 中使用。这不会让 socat
与 SCTP 一起使用,但可能会支持您使用它进行其他爱好编程。
关于macos - OS X Mountain Lion 上的 Homebrew socat,sctp "Protocol not supported",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15606087/
在跨平台应用程序中,我正在使用一个配置文件,允许用户根据需要覆盖各种默认值。 我的问题是...在哪里放置/查找此配置文件,尤其是关于 MacOS X(我从未使用过且无法访问)?我知道 MacOS X
由于Xcode的代码签名和存档非常耗时,枯燥且有问题,因此我一直通过自己的脚本使用命令行工具xcodebuild,codesign等对我的开发人员ID签名的macOS应用进行代码签名,存档和交付。公证
我正在寻找一种在 MacOs 应用程序中以编程方式逐帧绘制动画的方法(不是关键帧属性动画)。我尝试使用drawLayer:inContext:委托(delegate)方法绘制到CALayers,调用s
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我在83%的安装openCV中遇到问题...我的python是2.7.3。我已经适应了xcode。我使用了这个tuturial。 我的Cmake: cmake -D CMAKE_BUILD_TYPE=
我需要弄清楚 Mac 的日志键的键码(ctrl、shift 等)或者需要知道如何跟踪这个日志按键事件... 基本上我正在将 mac key 代码转换为等效的 Windows key 代码......我
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 2年前关闭。 Improve thi
我想将一个 Rust 程序从我的 x86 Mac 交叉编译成一个可以在 Silicon Mac 上运行的二进制文件,但我无法弄清楚链接。 我有: 运行 macOS 10.15.7 Catalina 的
在 macOS ventura 中,我无法复制我的终端应用程序。 我想这样做,因为我有一个 M1 处理器,我想要一个使用 Rosetta2 打开的处理器和一个本地打开的处理器。 有什么办法解决这个问题
当您可以访问实际硬件时,在 Mac 上以安全模式启动是很容易的。您只需在启动时按住 shift 键即可。 在虚拟机中运行 macOS (OSX) 时如何启动到安全模式? 最佳答案 Schmitty 在
这个问题在这里已经有了答案: How to get Conda and Virtualenv to work on mac OS Catalina? (8 个答案) 关闭 3 年前。 我在 macO
我有一个关于 macOS 应用程序图标的问题。我以前看过很多动画图标,但从来没有真正密切关注正在发生的事情/他们是如何做的。我只是想知道是否有任何方法可以创建在停靠栏中动画的动画应用程序图标。 例如:
每当我在 vim 中输入终端命令(例如,!echo hello)时,我会立即被踢出去查看该终端命令的结果,然后提示我使用 按 ENTER 或键入命令继续。这有点刺耳。我想留在 vim 中,并在底部打印
当使用文本编辑应用程序时,选择一种字体(例如“Menlo”)来呈现字形,当所选字体不包含特殊字形(例如“𠹷”,它是一个简单的中文字形,“Menlo"不包含它), 应用程序会选择一种字体来呈现它, 在
已经有几个关于如何在 Mac 上启用虚拟化的问题(例如 How to enable support of CPU virtualization on Macbook Pro?)。经常报告 sysctl
这只是出于好奇。 Exposé 有两个功能,其中一个是重新排列桌面上的窗口,一个是显示所有打开的窗口,这样用户可以看到隐藏在其他窗口下面的窗口,另一个功能是将所有窗口移到两侧,让用户与桌面交互。 我只
我使用的是 MacOS X,我对应用程序包类型的东西还很陌生。我正在编写一个程序来打开一个窗口并注册鼠标输入——而不是一个命令行工具。当我将我的代码(用 C 编写,如果这很重要)编译成一个可执行文件(
我正在制作一个必须支持 macOS 的 Flutter 插件。但是,当我想创建一个插件并在示例应用程序中运行该插件时(即使我还没有编辑过 Flutter 生成的代码),Xcode 会抛出以下错误。 无
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我想在终端(MacOs)中像屏幕一样显示当前目录面包屑: 我该怎么做? 现在它只是一个文本...... 谢谢 最佳答案 首选项 -> 窗口 -> 检查工作目录或文档下的“路径”。 路径将作为窗口标题的
我是一名优秀的程序员,十分优秀!