问题标签 [networking]

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 投票
5 回答
10230 浏览

networking - 处理网络游戏中的延迟

我正在考虑制作一款网络游戏。我对此有点陌生,并且已经遇到了很多问题,试图为航位推算和网络延迟制定一个好的计划,所以我很想看到一些关于这个主题的优秀文献。我将描述我考虑过的方法。

最初,我只是将玩家的输入发送到服务器,在那里进行模拟,然后将游戏状态的变化广播给所有玩家。这使得作弊变得困难,但在高延迟情况下,事情有点难以控制,因为你不会立即看到自己行为的结果。

这篇 GamaSutra 文章有一个解决方案,可以通过在客户端上进行模拟来节省带宽并使本地输入看起来很流畅,但它似乎将防作弊功能扔到了窗外。此外,当玩家开始操纵环境、推动岩石等时,我不确定该怎么做。这些以前中立的对象将暂时成为客户端需要发送 PDU 的对象,或者可能是多个玩家同时发送的对象。谁的 PDU 会赢?每个玩家何时会停止对对象进行双重跟踪(与航位推算的版本进行比较)?天堂禁止两个玩家进行相扑比赛(例如开始互相推搡)。

这个 gamedev.net 位显示 gamasutra 解决方案不足,但描述了一种不同的方法,它并不能真正解决我的协作巨石推动示例。我发现的大多数其他东西都是针对射手的。我很想看到一些更适合像 SNES Zelda 这样玩的游戏,但涉及更多的物理/动力。

  • 注意:我不是在这里询问物理模拟——其他库已经涵盖了。尽管网络延迟,但只是使游戏流畅和反应灵敏的策略。
0 投票
12 回答
97628 浏览

ruby - 在 Ruby on Rails 中获取主机名或 IP

我正在维护一个 Ruby on Rails 应用程序,并且正在寻找一种简单的方法来查找我所在机器的主机名或 IP 地址(因为它是一个 VM,并且新实例可能有不同的主机名或 IP 地址) . 在 Ruby on Rails 中是否有一种快速简便的方法来做到这一点?

编辑:下面的答案是正确的,但克雷格提供的澄清很有用(另见答案中提供的链接):

[以下] 代码不会建立连接或发送任何数据包(到 64.233.187.99,即 google)。由于 UDP 是一个无状态协议,connect() 仅进行一个系统调用,它会根据地址以及它应该绑定到的接口(以及 IP 地址)来确定如何路由数据包。addr() 返回一个数组,其中包含套接字的族(AF_INET)、本地端口和本地地址(这是我们想要的)。

0 投票
3 回答
7601 浏览

networking - P2P 应用程序中的直接 TCP/IP 连接

来自Joel 在 Copilot 上的帖子

直接联系!我们总是尽我们所能确保 Fog Creek Copilot 可以在任何网络情况下连接,无论有什么防火墙或 NAT 就位。为了实现这一点,双方都与我们的服务器建立出站连接,该服务器代表他们中继流量。好吧,在许多情况下,这不是必需的。所以 2.0 版做了一些相当聪明的事情:它通过我们的服务器建立了初始连接,因此您可以立即以 100% 的可靠性连接。但是一旦你们都连接起来,它就会在后台悄悄地寻找一种直接连接的方法。如果不能,没什么大不了的:您只需继续通过我们的服务器进行中继。如果您可以建立直接的点对点连接,它会默默地将您的数据转移到直接连接上。

他们如何将服务器连接更改为 P2P 连接?

0 投票
6 回答
9938 浏览

c# - 通过 C# 确定本地组的成员

我想知道是否有人知道如何通过 C# 以编程方式获取远程服务器上本地组的成员资格。这需要管理员权限吗?如果是这样,有什么方法可以确认当前登录用户的这些组的成员身份(或不是)?

0 投票
4 回答
1332 浏览

java - Java 中的套接字和进程

在 Java 中,最好的方法是打开一个不断侦听的端口,并在收到数据包后仍然发送。目前我对网络编程并不是特别精通,所以我在网上找到的教程并不是特别有用。

将侦听套接字作为服务器套接字并在单独的线程中运行到我用来向服务器发送数据的套接字是否有意义?

在一个松散相关的问题中。有谁知道如果只为java编程,在netbeans中然后将它导出以在黑莓上使用(使用插件)套接字仍然可以工作吗?

0 投票
7 回答
28886 浏览

.net - 可以捕获环回流量的Windows数据包嗅探器?

(这是我之前关于测量 .NET 远程处理流量的问题的后续。)

当我测试我们的 Windows 服务/服务控制器 GUI 组合时,在我的开发盒上运行这两个部分通常是最方便的。使用此设置,两者之间的远程通信是通过环回,而不是通过以太网卡。

是否有任何软件数据包嗅探器可以捕获 WinXP 机器上的环回流量?Wireshark是一个很棒的包,但它只能捕获 Windows 机器上的外部流量,不能捕获环回。

0 投票
6 回答
24922 浏览

sql-server - 为什么我在 ASP 页面中收到此错误“[DBNETLIB][ConnectionRead (recv()).]General network error”

有时,在 ASP(经典)站点上,用户会收到此错误:

似乎是随机的,并且没有连接到任何特定页面。SQL 服务器与 Web 服务器是分开的,我的猜测是每隔一段时间,两者之间的“链接”就会断开。路由器/交换机问题...或者其他人之前遇到过这个问题?

0 投票
3 回答
99346 浏览

windows - 如何在 Windows 上创建虚拟网络接口?

在 linux 上,可以使用 tun 驱动程序创建一个 tun 接口,该驱动程序提供可以被视为常规网络接口的“网络接口伪设备”。有没有办法在 Windows 上以编程方式执行此操作?有没有办法在不编写我自己的驱动程序的情况下做到这一点?

0 投票
6 回答
12332 浏览

c++ - UDP 数据是否会损坏?

UDP数据是否有可能损坏?我知道它可能会丢失。

0 投票
14 回答
248494 浏览

networking - UDP vs TCP,它快多少?

用于一般协议消息交换,可以容忍一些丢包。UDP 比 TCP 效率高多少?