问题标签 [getsockopt]

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 投票
0 回答
14 浏览

getsockopt - 如何 printf() 声明和初始化 getsockname() 函数?

主函数()

我应该如何为 getsockname() 函数初始化我的变量?

在初始化getsockanme之前我应该​​有int变量声明吗?

我最终将如何将我的变量应用到 printf() 以打印套接字:端口字符串?

client.c:21:14: 错误:初始化元素不是常量 21 | int cliapi = getsockname(servsock, (struct sockaddr *) &servaddr, clilen); | ^~~~~~~~~~~ client.c:26:8: 错误:预期的声明说明符或字符串常量 26 之前的 '...' | printf("%d/n", cliapi); | ^~~~~~ client.c:26:16: 错误: 'cliapi' 26 之前的预期声明说明符或'...' | printf("%d/n", cliapi); | ^~~~~~ client.c:33:1: 错误:预期标识符或 '(' 在 '{' 标记 33 | {

0 投票
0 回答
78 浏览

linux - 什么是 tcp_info->tcpi_rtt 字段以及它是如何计算的?

我正在尝试编写一些维护代码,以帮助我识别 TCP 连接质量。我正在使用 getsockopt() 每秒获取 tcp_info 结构,并且我tcpi_rtt以微秒为单位获得的字段值在模式中, 5340 9140 12007 14115 15764 17058 17990 18709 19298 19767 20063 20276 20543 20699 20804 20914 21004 21126 21131 21110 21135 21115 21199 21160 21162 21137 21204 21267 21251 21234 21268 21204... 有时,它会保持在这个 21K 范围内。

有了这个,我还试图计算应用程序 RTT,即识别同一 TCP 连接上的 HTTP req/res 往返时间,我能够以微秒为单位计算的值是, 1811 869 1356 965 984 2312 841 822 680 1140 3140 789 859 844 1575 1883 964 2107 890 1034 856 1337 1182 969 855 821 1583 907 1427 705 813 1318 681 1181 804 834 915 846 832 2256 977 860 922 699 872 1577 ...

在这个练习中,我期望 tcpi_rtt 值小于 app_rtt 值,因为 HTTP 应用程序在同一个 TCP 连接上运行。

我无法为 tcpi_rtt 字段找到任何好的文档,首先是它的含义以及它是如何计算的?

任何文档链接都会有所帮助。谢谢 !