networking相关内容

使用 sendto()/recvfrom() 而不是 connect()/send()/recv() 与 UDP 套接字的目的是什么?

我可以掌握 TCP 与 UDP 的概念,但我仍然不知道为什么有两种发送 UDP 数据包的方式,并且我仍然不明白这是否是绝对必要的 bind() 和 accept()... 解决方案 accept() 用于 TCP.它与UDP无关. UDP 中的 connect() 不会对另一端做任何事情,它只是让本地 API 知道您向谁发送和接收谁. 如果你还不知道,或者不关心,或者想用 ..
发布时间:2022-01-19 16:06:53 其他开发

数据包和帧之间的区别

网络世界中常用的两个词——数据包和帧. 谁能详细说说这两个词的区别? 希望它可能听起来很傻,但它的意思如下 数据包是网络 OSI 模型的第 3 层(网络层 - ip 数据包)的 PDU(协议数据单元). 帧是 OSI 模型的第 2 层(数据链路)的 PDU. 解决方案 Packets 和 Frames 是 协议数据单元 (PDU) 在不同 网络层 段/数据报是 ..
发布时间:2022-01-19 16:06:20 其他开发

如何在 C 中获取我的非环回网络 IP 地址?

对于两个主机之间的通信,我需要将我的主机的 IP 地址发送到另一个站点.问题是,如果我请求我的 IP 地址,可能是我取回了本地环回 IP 地址 (127.x.x.x) ,而不是网络(以太网)IP 地址. 我使用以下代码: char myhostname[32];获取主机名(我的主机名,32);hp = gethostbyname(我的主机名);unsigned my_ip = *(unsi ..
发布时间:2022-01-19 16:03:54 其他开发

为winsock recvfrom设置超时

我正在尝试在端口上尝试 recvfrom() 16 毫秒后设置一个阻塞套接字以超时.平台是 Windows.我在网上看了很多例子,看起来很简单,我似乎无法让它工作.任何帮助将不胜感激! #include #include #pragma 注释(lib,“ws2_32.lib")#define PORT_NUM 8001诠释主要(无效){标准::字符串本地IP;s ..
发布时间:2022-01-19 15:59:07 其他开发

TCP 连接错误 115 Operation in Progress 原因是什么?

我的应用程序创建了一个 TCP 连接,这工作正常.但是在一个网络服务器有很多IP说 174.X.X.X 54.x.x.x像这样 调用 TCP 连接时(非阻塞,超时 60 秒)到 IP 174.X.X.X 总是成功的.但是使用 ip 54.x.x.x 连接到同一台服务器的 TCP 失败(大多数情况下),错误号为 115正在测量操作. 你能解释一下 errno 115 的可能原因是 ..
发布时间:2022-01-19 15:58:41 其他开发

了解结构 sockaddr

struct sockaddr {无符号短 sa_family;//地址族,AF_xxx字符 sa_data[14];//14字节的协议地址}; 在这个结构中,sa_family所描述的address family究竟是什么意思? 这是否意味着像 TCP/UDP 这样的协议有“地址"?好吧,我认为协议可以是识别号而不是地址. 无论如何,如果是,那么他们的家庭是根据什么划分的? ..

如何测量网络性能(如何对网络协议进行基准测试)

首先,有一点背景.分布式版本控制系统 (DVCS) 有许多不同的比较,它们比较存储库的大小或操作的基准速度.我还没有找到任何可以对各种 DVCS 和所使用的各种协议的网络性能进行基准测试的方法……除了测量涉及“克隆"、“拉取"/“获取"或“推送"等网络的操作(命令)的速度. 我想知道你会如何进行这样的比较;如何测量应用程序的网络性能,或如何对网络协议进行基准测试.我在这里设想还测量性能对网络 ..

如何在不轮询内核的情况下监控 C 程序中的 NIC 状态(启动/关闭)?

现在我需要实时获取 NIC 的状态(启动或关闭).这意味着当 NIC 在阻塞循环中启动或关闭时,我必须捕获内核中断. 我的第一个愚蠢的方法是检查 /sys/class/net/eth0/operstate 或使用 ioctl 在循环中每 100 毫秒获取一次 ifflag.但是 100 毫秒对于应用程序重新路由流量来说太长了,而且每 100 毫秒轮询一次内核也不是一个好主意. 我注意到 ..

服务器端的许多 TIME_WAIT 成本是多少?

假设有一个客户端与服务器建立了很多短期连接. 如果客户端关闭连接,客户端会有很多端口处于TIME_WAIT状态.由于客户端用完了本地端口,因此无法快速尝试新的连接. 如果服务器关闭连接,我会在服务器端看到很多TIME_WAIT.然而,这有什么害处吗?客户端(或其他客户端)可以继续尝试连接,因为它永远不会用完本地端口,并且 TIME_WAIT 状态的数量将在服务器端增加.最终会发生什么? ..
发布时间:2022-01-19 15:42:30 其他开发

通过 SSH 隧道访问 LDAP

我通过 SSH(root 访问)访问了我客户办公室网络内的一台机器. 我正在我的计算机上编写一个需要集成到 LDAP 的 PHP 应用程序.LDAP 服务器位于我客户端网络中的另一台服务器中,无法从外部访问,但是我可以通过可以通过 SSH 连接的服务器完美访问它. 我的问题是:无论如何,我是否可以在我的计算机中建立隧道并设置一个端口,以使用与网络上其中一台计算机的 SSH 连接将流量转 ..
发布时间:2022-01-17 19:44:04 其他开发