network-programming相关内容

UDP非阻塞写入故障

我研究过非阻塞的TCP,因为在非阻塞的情况下,读写都可能失败。如果没有可用的数据,则TCP非阻塞读取可能失败,如果对等端的TCP缓冲区已满(我希望TCP缓冲区大小为64K),则TCP写入可能失败。 同样,如果没有可用的数据,UDP读取(recvfrom)可能会失败。但是,UDP写入(sendto)的失败情况是什么?我认为在UDP写入中不会有任何非块错误。因为TCP WRITE发送数据并等待来自另 ..
发布时间:2022-08-02 11:21:27 其他开发

如何启用UDP校验和

我正在做一个项目,涉及VxWorks设备和Linux机器之间的UDP套接字通信。在此项目中,我希望利用UDP报头的校验和字段。 在VxWorks套接字接口中,出站UDP数据包的checksum字段默认处于启用状态。 但是,对于通常的Unix套接字接口,似乎没有任何标志或其他方法来打开UDP套接字,该套接字将检查传入数据包的校验和并填充传出数据包的校验和。 对于通常的Unix套接字接口 ..
发布时间:2022-07-25 22:36:07 其他开发

使用tcp关闭(SOCK,SHUT_RD)的行为

使用TCP套接字时, shutdown(sock, SHUT_RD); 真的是这样吗?它只是让所有recv()调用返回错误代码吗?如果是,错误代码是什么? 它是否会导致底层的TCP连接发送任何数据包?此时另一端发送的任何数据会发生什么情况-是保留它,并且连接的窗口大小一直缩小到0,还是只是丢弃它,而窗口大小不会缩小? 推荐答案 关闭套接字的读取端将导致任何被阻止的rec ..
发布时间:2022-07-25 15:54:27 其他开发

为什么我的IP地址以192开头。?

我来自非网络背景。我突然想知道为什么我工作的公司几乎总是有192.168.x.x这样的IP。为什么他们不能有像1.2.3.4这样的 我知道IP有并且有一个称为子网划分的概念。 此外,192.168.0.0到192.168.255.255似乎也用于私人用途。 问题: 1)假设所有设备都通过Rroughter连接到互联网,IP地址有什么关系? 有什么智慧吗? 推荐答 ..
发布时间:2022-07-25 15:49:22 其他开发

LoRaWAN的基于LORA的网络堆栈替代方案

据我所知,LoRaWAN被故意设计为非IP堆栈。 基于对LoRaWAN的所有需求,我可以理解标准背后的设计决策。 但我想说的是,LORA(仅是物理协议)还有许多其他用例,例如 无需同时与多个网关通信或 能耗要求不低。 对于这些用例,如果有其他MAC实现,那就更好了,其中一个可以 基于IP的堆栈位于LORA之上或 基于LORA的传感器和一个网关之间的轻量级协议,用于处理消息传 ..
发布时间:2022-04-16 20:54:45 其他开发

使用节点数和平均度参数创建网络

我想创建一个随机网络(和无标度网络),其中N个节点,个平均度。我如何才能做到这一点? NetLogoNW扩展的nw: generate-random(和nw:generate-preferential-attachment)方法似乎不允许处理平均节点度。 我错了吗?小费? 谢谢。 推荐答案 确实,nw:generate-random和nw:generate-prefe ..
发布时间:2022-04-14 12:21:17 其他开发

服务器打印到标准输出,而不是套接字

我正在学习UNIX网络编程中的示例,并且我已经将“daytimeclientserv.c”改编成这里的代码。服务器按照预期将日期/时间字符串发送到客户端,但它在启动时收到的第一个请求除外。当我第一次运行服务器程序(在LAN中的另一台计算机上)时,它会创建侦听套接字,绑定它,然后等待连接。在接收到第一个请求时,它将日期/时间字符串打印到它自己的标准输出(终端),而不是输出到套接字,并且客户端程序挂起 ..
发布时间:2022-03-11 20:20:42 其他开发

协议错误确定要反序列化的消息类型

使用协议Buf,我们可以定义消息并生成它们的类,每个类都知道如何序列化/反序列化为二进制。 假设我们已经定义了多个不同的消息, 并且我们从线路上获得了一些byte[],我们如何确定要使用适当的类和反序列化的消息类型呢? 推荐答案 不能。协议缓冲区的有线格式不编码消息类型,只编码标记号和类型。 例如,以下协议的消息实例的wire格式将相同(显然,字符串字段中的数据相同): ..
发布时间:2022-03-09 16:46:53 Java开发

从给定的IP地址和子网掩码获取所有IP地址

在Java中,我需要获取给定IP网络包含的所有IP地址的列表。 例如,假设网络为:192.168.5.0/24,则输出将为(192.168.5.0.192.168.5.255)。 我可以想到以下方式,但看起来很脏,有没有优雅的方式?InetAddress类中没有同样的函数。 从输入IP和子网掩码获取网络IP。 mask = (long)(0xffffffff) ..
发布时间:2022-02-25 18:56:05 Java开发

如何将字符串写入远程计算机上的文件?

在Machine1上,我有一个Python2.7脚本,该脚本在RAM中计算一个很大(最大10MB)的二进制字符串,我希望将该字符串写入到Machine2上的磁盘文件中,Machine2是一台远程计算机。执行此操作的最佳方式是什么? 约束: 这两台机器都是Ubuntu13.04。它们之间的连接速度很快--它们位于同一网络上。 目标目录可能在Machine2上尚不存在,因此可能需要创 ..
发布时间:2022-02-21 15:01:46 Python

检查 WebRTC 连接 - 可靠的方法

我有一个实时视频聊天应用程序,我使用支持 STUN/TURN 和 UPD/TCP 传输的 TURN 服务器. 有时用户可以连接到网络,这阻止WebRTC连接只是无法发生的那么多端口和协议(通常是公司网络).我想在用户尝试相互连接之前检查 WebRTC 连接是否可行(实际上,执行技术检查). 我该怎么做?我脑子里的想法: 尝试通过 WebRTC下载托管的数据块(例如音频文件) - ..
发布时间:2022-01-24 15:36:24 其他开发

使用多个 NIC 广播 UDP 数据包

我正在为 Linux 中的相机控制器构建一个嵌入式系统(不是实时的).我在让网络做我想做的事情时遇到问题.该系统有 3 个 NIC、1 个 100base-T 和 2 个千兆端口.我将较慢的连接到相机(这是它所支持的全部),而较快的则是与其他机器的点对点连接.我正在尝试从相机获取图像,进行一些处理,然后使用 UDP 将其广播到其他每个 NIC. 这是我的网络配置: eth0: addr ..
发布时间:2022-01-22 17:28:16 服务器开发

udp丢包和恢复

我正在开发基于 udp/tcp 的 P2P 文件和实时视频流应用程序.该应用程序将使用 c++ 为 Linux 和 Windows 平台开发. 我们正在使用 ICE(TCP/UDP 打孔)来实现 P2P.虽然 TCP 确保数据包丢失,但对于 UDP,我需要一种体面的方法来确保必须将数据包传递给其他对等方. 我想知道执行此操作的算法或技术. 是否有任何免费的第三方工具/库可供使用. ..
发布时间:2022-01-22 17:26:31 其他开发

c++ 打孔UDP(RTP)

我正在做一个客户端-服务器语音聊天程序(非托管 C++,win32),其中客户端使用 TCP 连接到服务器,文本聊天/聊天室功能在 TCP 中完成,而所有音频传输都通过单独的 UDP/RTP 套接字发送(使用 JRTPLIB 的 API). 所以从TCP连接知道IP,建立连接后就可以发送RTP套接字的端口号了. 问题在于,在 TCP 中,自从您建立连接以来,只有服务器需要进行端口转发才 ..
发布时间:2022-01-22 17:25:05 C/C++开发

TCP/UDP 解复用的工作原理是什么?

我有以下声明. "在 TCP 中,接收方主机使用所有源 IP、源端口、目的 IP 和目的端口将数据报定向到适当的套接字.而在 UDP 中,接收方仅检查目的端口号来定向数据报." 以上说法是真的吗? 如果是,是否意味着在 TCP 中同一个端口可以在一个进程中用于多个套接字,而在 UDP 中,在一个进程中的一个端口上只能使用一个套接字?不同进程中的套接字呢?多个进程可以在 TCP/U ..
发布时间:2022-01-22 17:24:31 其他开发

通过 Internet 的 UDP.它是如何工作的?

当我正在编写网络聊天(java,但不应该对问题产生影响)并想使用 UDP 时,我遇到了它无法通过 Internet 工作的问题.经过一番研究,我发现您必须激活特定端口的端口转发.所以现在我的问题来了: UDP 是否以不可配置的方式在 Internet 上工作? 例如,如果我要编写整个网络游戏,那么使用 UDP 是否有意义?或者我会要求播放器激活端口转发并打开端口等? 那么什么时候 ..
发布时间:2022-01-22 17:20:46 Java开发

udp 数据包不通过

我有以下设置: 专用服务器 --> 互联网 --> 调制解调器(远程网络) --> 路由器 --> 客户端 客户端发起与服务器的tcp连接以在服务器上注册自己,并通过以下信息给出: 客户端的mac地址 外部IP;这是通过使用从 whatsmyip.org 下载的 webclient 字符串来检索的 一些更新发生在服务器上,当然需要通知客户端,因此客户端可以自行启动同步会话: ..
发布时间:2022-01-22 17:17:34 C#/.NET

在 Java 中忽略您自己的 UDP 广播

在我的程序中,我发送 UDP 广播并对它们做出反应.我需要一种方法来忽略 我 发出的 UDP 广播,但对不是来自我的机器的广播做出反应. 我确实尝试过使用:if (NetworkInterface.getByInetAddress(packet.getAddress()) != null)但这在某些情况下会产生 IOExceptions(java.net.SocketException: n ..
发布时间:2022-01-22 17:16:47 Java开发