问题标签 [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.
python - windows的setsockopt坏了吗?
我希望能够重用一些端口,这就是我在套接字上使用setsockopt的原因,代码如下:
然而,这并没有真正起作用。我也没有收到绑定错误,但服务器套接字只是没有响应(它似乎已启动,但如果我尝试连接它,它不会进入选择循环)。如果脚本意外结束,则会出现此行为,并且如果我更改服务器正在侦听的端口,一切都会再次运行。你能提供一些建议吗?
编辑:我将套接字重命名为 sock。这只是我为此代码片段选择的名称。
c - 从 C 套接字中提取 IP 地址
好的,我对使用 C 套接字还是很陌生,但我想知道是否有一种方法可以提取 IP 地址并添加运行 setsockopt?如果您在下面查看我的代码,我的多播套接字中的所有内容都已准备好发送,除了定义变量 mc_addr 这是我的 IP 地址。
我做错了什么是真正明显的吗?如果是这样,请随时让我知道或提供您的建议。不过现在,我主要关心的是填写变量 mc_addr。
我以前从来没有用过 C 编程(只是 python、C++,而且从今年夏天开始,Objective-C),所以这就是为什么我不知道所有关于 C 语言的知识并且正在寻求帮助。
文件.h
文件.c
c++ - win32中设置IP_HDRINCL为setsockopt函数
我正在与 Win32 中的原始套接字战斗,现在我被卡住了,soetsockopt 函数给了我 10022 错误(无效参数),但我认为我传递了正确的参数......当然我错了 u_u'
有人知道我的代码发生了什么吗?
c - 与 Objective-C/C 中的 GetLastError 类似的功能?
我现在在 Objective-C 中做一些可爱的套接字编程,我的部分代码给了我一个错误(在 setsockopt 方法调用中)。我想知道是否有人知道与 C++ 中的 GetLastError() 函数类似的函数,我可以在 Objective-C 中使用它来确定我的代码的问题?
linux - 查看其他应用程序创建的现有套接字上的套接字选项?
我想测试是否在现有套接字上设置了特定的套接字选项。即,您可以在其中看到的几乎所有内容:
任何人都知道我如何查看现有套接字上的选项,即由其他进程创建的选项?唉,我读过的关于 Python 套接字编程的几乎所有文档都是关于制作新套接字的。
linux - 如何在 MacOSX/Ubuntu 中重新绑定套接字?第二次
我有以下代码:
当我用 close() 关闭服务器时,我无法在同一个端口再次打开服务器。为什么?我需要更改端口或重新启动系统。它只发生在 Ubuntu 和 MacOSX 中。在 Windows 中我没有这个问题。
错误发生在 ::bind() 函数中。它不允许我重新绑定()一个套接字两次。
如何重新绑定?
c - 在 C 中设置 TCP 接收窗口并在 Linux 中使用 tcpdump
我正在运行一个运行 2.6.9-55.ELsmp、x86_64 的 Linux 机器。
我正在尝试通过使用 C 的 setsockopt() 函数来设置 TCP 接收窗口。我尝试以下操作:
上面的代码段位于从服务器接收数据的客户端程序中。当我启动程序以接收和观察 tcpdump 输出时,我观察到窗口协商,如下所示:
我们看到客户端程序实际上正在协商一个与我在客户端程序中设置的窗口不同的窗口。但是,从我如何解释 Steven 的文本(“TCP/IP Illustrated, Volume 1”)第 20.4 节来看,我相信您使用我使用的 setsockopt() 调用影响了他在第 20.4 节的第二个块引用中所指的内容(见上文)。
我想了解我哪里出错了。
也许我对史蒂文斯所说的解释是不正确的。在这种情况下,您能否指出设置接收缓冲区大小的正确方法?为了证明我的困惑,我参考了http://linux.die.net/man/7/tcp上的 Linux TCP 套接字手册页(请参阅对 SO_RCFBUF 的评论)。
我在这个故事中缺少什么?如何控制接收缓冲区大小(并让它显示在 tcpdump 输出中)?请注意,我在这里提到了套接字选项 SO_RCFBUF 的设置——我知道这就是 SYN 的窗口协商中显示的内容。
任何输入表示赞赏。
c - setsockopt (sys/socket.h)
setsockopt 的原型是:
以下都是正确的吗?哪些不是?
一个。)
b.)
C。)
d.)
networking - 添加 IPV6_V6ONLY 标志的动机是什么?
在 IPv6 网络中,IPV6_V6ONLY 标志用于确保套接字仅使用 IPv6,特别是 IPv4 到 IPv6 的映射不会用于该套接字。在许多操作系统上,默认情况下不设置 IPV6_V6ONLY,但在某些操作系统(例如 Windows 7)上,默认设置。
我的问题是:引入这个标志的动机是什么?IPv4 到 IPv6 映射是否存在导致问题的问题,因此人们需要一种方法来禁用它?在我看来,如果有人不想使用 IPv4 到 IPv6 的映射,他们根本无法指定 IPv4 映射的 IPv6 地址。我在这里想念什么?
c - 加入多播组时调用 setsockopt 时出现错误“没有此类设备”
我有一个发送多播数据报的代码。一段关键的代码:
有时程序会成功执行(此时我有 IP - 192.168.80.122
)。我可以通过wireshark 捕获我的多播数据报。没关系。
但是,如果我将我的 IP 更改为192.168.1.2
,则在调用时会出错
而且我什至无法捕获我的多播数据包。什么都没有发送。哪里有毛病?