- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无意中发现了 Solaris 10 套接字和其他 Linux/*NIX 套接字之间的特殊区别。示例:
int temp1, rc;
temp1 = 16*1024*1024; /* from config, a value greater than system limit */
rc = setsockopt( sd, SOL_SOCKET, SO_RCVBUF, &temp1, sizeof(temp1);
上述代码在所有系统(Linux、HP-UX 和 AIX)上都将具有 rc == 0
,Solaris 10 除外。其他系统会静默地将提供的值截断为允许的最大值。 Solaris 10 理所当然地 失败,errno == ENOBUFS
指示配置错误。
经过深思熟虑,决定由于特定应用程序是关键而不是失败,所以它应该尽可能优雅地继续工作:
getsockopt()
添加检查)和#2 是我卡住了。在所有非 Solaris 系统上,我不需要做任何事情:套接字已经为我做了。
但是在 Solaris 上我不知所措。我围绕 (setsockopt(...) == -1 && errno == ENOBUFS)
条件实现了一些简单的二分法来查找最大缓冲区大小,但它看起来很难看。 (我也没有上下文来保存查找结果:必须对具有如此糟糕配置的每个连接重复搜索。全局变量是有问题的,因为代码在共享库中并且从 MT 应用程序中使用。)
在 Solaris 10 上是否有更好的方法来使用套接字 API 检测最大允许缓冲区大小?
有什么方法可以告诉 Solaris 的套接字 API 像其他系统那样截断值吗?
最佳答案
目前我无法访问 Solaris 10 系统,但根据 Oracle documentation ,您可以使用 ndd
实用程序查询(和设置)已配置的 TCP 和 UDP 缓冲区大小最大值:
$ ndd -get /dev/tcp tcp_max_buf
$ ndd -get /dev/udp udp_max_buf
我不知道 C API,但也许 ndd
使用的东西被暴露了?
关于c - 索拉里斯 10 : handle gracefully ENOBUFS error when changing socket buffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3701825/
在设置我的 default.vcl 文件 (Varnish 3) 时,我看到了对 vcl_fetch 使用 beresp.grace 或 obj.grace 的不同建议。有什么区别? https://
假设我有以下代码: public void run(){ while (true){ function1(); ... functionN();
我正在开发一个在 Linux 环境中作为守护进程运行的 Python 脚本。如果以及当我需要对设备发出关机/重启操作时,我想做一些清理并将数据记录到文件中以在关机期间保留它。 我四处查看有关 Linu
现在我正在使用 Process.Kill() 来终止进程。有没有办法,而不是立即杀死它,我可以向进程发送一条消息,指示它关闭,以便它可以优雅地清理和关闭。基本上,我正在寻找与单击右上角的红色 X 等效
收到消息Your password will be expired with in 7 days后,我将default配置文件的密码过期天数更改为UNLIMITED。但是某些用户的帐户状态仍保留在EX
我正在尝试 Docker 并遇到docker container stop # Gracefully stop the specified container 我不是在问docker stop和do
我有一个后台 worker 实现了 BackgroundService(由 MS 提供)。 看看这个简单的实现: public class MyService : BackgroundService
我全新安装了 Slackware 64 14 位,并查看了 Varnish installation documentation我安装了所有依赖项并编译了 varnish,没有错误(make chec
使用 D7 + Indy 10 最新版本。 我的代码使用 TIdSMTP 发送电子邮件。我不断收到一些最终用户的“连接正常关闭”的消息,但电子邮件从未发送。 代码如下: try ~~~~ ~~~~ _
如果我们在后台启动 KafkaStream 应用程序(比如 Linux),是否有办法从外部向应用程序发送信号,以启动正常关闭? 最佳答案 如文档 ( https://kafka.apache.org/
如果我们在后台启动 KafkaStream 应用程序(比如 Linux),是否有办法从外部向应用程序发送信号,以启动正常关闭? 最佳答案 如文档 ( https://kafka.apache.org/
我正在开发我的第一个多线程项目,因此有一些我不确定的事情。有关我的设置的详细信息位于 previous question简而言之:我有一个由 Executors.newFixedThreadPool(
目标:拥有带有嵌入式 Jetty 的 Spring Web 应用程序,我想正常关闭/重新启动该应用程序。 这是 EmbeddedServletContainerFactory bean(如果需要,我将
我已经配置了 grunt,当我运行“grunt serve”时,我得到这个错误: Error: Cannot find module 'graceful-fs' at Function.Mod
在等待 boost::process::child 时,您如何知道它是否“优雅地”退出? 假设我创建了一个流程: boost::process::child child( "myprg.exe", "
是 import multiprocessing import schedule def worker(): #do some stuff def sched(argv): sche
为冗长的介绍道歉 - 只是试图适本地设置场景以避免歧义和困惑。 Web 应用程序已经从用于服务器端逻辑的基于浏览器的笨接口(interface)发展为完全基于浏览器的应用程序,对服务器端逻辑的需求最少
我正在编写一个应用程序,希望客户能够直接从浏览器上传到 Amazon S3。我可以把这个工作做得很好。但是当错误发生时,我希望能够更优雅地处理它们,而不是将 XML 文档散布在客户的屏幕上。 我有一个
我正在观看有关 Datastax 的 DS201 类(class),讲师突然开始使用术语“GC GRACE”。 “GC Grace”和“gc_grace_seconds”究竟是什么? 最佳答案 'gc
我正在尝试找到一种方法来模拟set -e在函数中的行为,但仅在该函数的范围内。 基本上,我想要一个函数,如果有任何简单的命令将触发set -e,它将返回1的上一级。目的是将有风险的工作集隔离为功能,以
我是一名优秀的程序员,十分优秀!