问题标签 [setsockopt]

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 回答
1206 浏览

c - OSX 上的getsockopt 返回不正确的值?

我正在使用以下程序来调试更大的问题。

现在,如果我在 OSX 上运行相同的程序,getopt 永远不会返回 0 或 1,它总是返回我设置的 optval 的任何值!

在我的程序中一定有一些明显的错误正在逃避我。

示例 我已将该程序作为 ./a.out 64.233.160.105 运行

这是我正在使用的示例程序。

0 投票
2 回答
1890 浏览

c++ - 如何使用 setsockopt 在 C++ 中设置套接字选项

尽管如此,我的代码还是有问题。

这是它的一部分,不断收到此错误 C2664: cannot convert parameter 4 from 'int' to 'const char *'

0 投票
0 回答
2332 浏览

linux - 透明 stunnel 代理 setsockopt 不允许操作

我正在尝试在服务器上为 websocket 服务运行一个透明的 stunnel4 代理。

WS 服务器基于 Ratchet 框架,因此不支持 WSS,因此需要代理。

当在 stunnel.conf 中将 transparent 设置为 none 时,websocket 流量可以顺利通过,并且除了 WS 服务器而言,所有流量都来自 127.0.0.1 之外,一切都运行良好。但是,一旦将透明设置为源,客户端就会得到
WebSocket connection to 'wss://<ADDR>:32770/' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET

据我所知,问题始于setsockopt IP_TRANSPARENT: Operation not permitted (1)stunnel 日志。我已经设置了 stunnel 文档中所需的所有 iptables 设置,并确保一切都以 root 身份运行。我已经解决这个问题三天了,我的搜索词的所有变体都变成了紫色,但无济于事。我希望这里有一个服务器向导来帮助我解决问题。

stunnel 文档参考:https ://www.stunnel.org/static/stunnel.html#SERVICE-LEVEL-OPTIONS

设置:
服务器正在运行 Ubuntu 12.04.5 LTS (GNU/Linux 2.6.32-042stab093.4 x86_64)
使用 stunnel 4

open_server.php 文件:

stunnel.conf:

尝试使用 transparent = source 命中套接字时的整个调试输出:

检查权限时的 Bash 输出:

0 投票
3 回答
8253 浏览

c - Linux 原始套接字缓冲区大小是否有 256 K 的上限?

我在 Centos 中使用以下代码将原始套接字缓冲区大小更改为 400 KB,但是当我将缓冲区大小设置为 256 KB 时,我得到了相同的结果。哪里不对了?或者这是套接字层的限制?内核版本为 2.6.34。谢谢!

运行后,结果为:

0 投票
2 回答
90 浏览

c - 本地套接字选项集与指向套接字选项集的指针

我想知道...如果您创建一个具有简单套接字参数的函数,并且您在该函数中执行基本指令,例如为该套接字(setsockopt())设置不同的选项,并且在函数存在后它仍然是选项,那么实际的区别是什么?或者我应该将该参数指针指向该套接字,以保留套接字将发生的实际更改。

还是像这样?

我知道通过将指针传递给 struct、int、char 等,您可以在函数执行后修改值,如果没有指针,修改将仅在该函数中保持本地,但不会全局更改。

但是setsockopt功能如何呢?

0 投票
1 回答
1276 浏览

select - 使用 setsockopt() 和 select() 设置 UDP 超时

我知道这两个都可以用来设置 recvfrom() 的超时,但是哪个更好呢?直观上看,setsockopt 似乎使用起来很简单,但我发现很多例子都在使用 select()。我只使用一个套接字,并且在传输中重新计算超时(我使用的是 Ubuntu)。

0 投票
1 回答
1942 浏览

sockets - 如何禁用设置的超时 setsockopt()?

在我正在开发的程序中,我设置了一个超时使用setsockopt(),以防止recvfrom()无限期阻塞。如何禁用超时?

(我在 Ubuntu 上)

0 投票
1 回答
662 浏览

c - 在 Linux C 程序中的非特权套接字(非原始)上设置 TCP 选项

在 Linux C 程序中,我可以为非特权套接字(非原始)上的传出 TCP 数据包设置哪些 TCP 选项?我指的是 TCP Header 中的 TCP Options。

我已经检查了http://linux.die.net/man/7/tcp所以现在我可以添加/编辑:

MSS、时间戳、窗口比例、Sack、快速打开(见下面的答案)

有没有办法添加其他选项?我对多路径特别感兴趣,但任何选项都会有所帮助。

谢谢!

0 投票
2 回答
3843 浏览

c - 套接字缓冲区大小不增加

输出是 -

当前套接字缓冲区 len = 41600

setsock 选择成功

设置套接字 buff len = 41600 后。

看起来接收缓冲区大小没有增加,知道为什么会这样吗?

提前致谢!

0 投票
2 回答
1464 浏览

c++ - 使用 setsockopt() 指定超时选项会导致后续监听错误

现在,我正在尝试setsockopt()使用以下代码指定选项:

注意tv是一个已经指定的时间。

当我只打第一个setsockopt()电话时,一切正常。但是,添加第二个(不返回任何错误)后,我遇到了代码中指定的第二个“监听错误”。我不确定为什么设置超时值会影响这一点,有人可以解释一下吗?

我不相信指定的代码;它是根据此处教程中提供的代码修改的:http: //codebase.eu/tutorial/linux-socket-programming-c/