- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
SCTP
具有本地多宿主支持,如果我理解正确的话,它会在主接口(interface)出现故障时自动将您的数据包重新路由到辅助 NIC。我用 TCP 复制了这个功能,方法是编写一个自定义路由守护程序,以便在我的主 NIC 出现故障时修改路由表。我想尝试使用 SCTP
。
在史蒂文的 Unix Network Programming V1 3rd Edition在第 288 页上说:
For this example, we use a one-to-many-style server. We make this choice for one important reason. The examples in Chapter 5 can be modified to run over
SCTP
with one minor change: modify thesocket
function call to specifyIPPROTO_SCTP
instead ofIPPROTO_TCP
as the third argument. Simply making this change, however, would not take advantage of any of the additional features provided bySCTP
except multi-homing.
现在我已经试过了,但结果很差。
我在安装了 libsctp1、libsctp-dev 和 lksctp-tools 软件包的 Ubuntu 9.04 上运行。我已经使用 lksctp-tools 验证 SCTP
工作正常。
我拿了UNP example code并按上述 ~/unpv13e/tcpcliserv/tcpserv04.c
和 ~/unpv13e/select/tcpcli02.c
程序进行修改。
这是一个简单的回显服务器/客户端对。服务器运行时显然在监听,但客户端退出时表示连接被拒绝。由于 netstat 不支持 SCTP
我使用了 lsof -n | grep tcpserv
向我显示:
tcpserv04 6208 alice 3u sock 0,4 33889 can't identify protocol
除了 tcpserv04 打开了某种套接字之外,这似乎并没有告诉我太多信息。
我已经用 perl 重写并测试了原始的 TCP 客户端,所以我将它切换到 sctp 并能够连接,尽管在 stdin 上传输文件并没有完全工作(在接收到的过程中挂起大约 2/3) echo 回来了)。
UNP 似乎暗示将 TCP 应用程序移植到 SCTP 以利用多宿主是微不足道的,但基于这种简单的尝试,情况似乎并非如此。
在将 TCP 应用程序移植到一对一样式的 SCTP 以利用多宿主时,任何人都可以指出一个好的教程或就任何需要注意的陷阱提供好的建议吗?
最佳答案
tcpcli02
尝试连接到端口 7,而 tcpserv04
监听端口 9877(SERV_PORT
的默认值)。更改这些以匹配后,它对我有用。
对 SCTP 的支持通常非常糟糕。除非您控制您尝试连接的主机之间的整个网络基础设施,否则我不会指望它可靠地工作。如 UNP 中所述,移植应用程序本身应该相当轻松。
关于sockets - 带多宿主的 SCTP 作为 TCP 的直接替代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2243411/
我正在开发框架,我已将此框架项目添加到宿主项目中。现在我想将 cocoapods pod(框架)添加到父(主机)项目中。并将同一个 pod 共享到子(框架)项目中。或者有什么我可以添加到 Podfil
我正在尝试使用 vagrant , Clojure和 emacs一起。具体来说,我无法连接cider到我的 vagrant机器。 它在本地工作,当我运行时 cider-jack-in在我的项目里面。
我是一名优秀的程序员,十分优秀!