问题标签 [packets]

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 投票
1 回答
212 浏览

c# - 为什么不是所有的数据包都发送到客户端?

我正在用 C# 为在线游戏编写一个简单的代理(更多是数据包记录器)。所有数据包都被代理接收,但有些数据包没有发送到客户端(不确定服务器)。例如:

客户端-> 服务器:登录数据包 - 我的代理接收数据包,显示它并将其发送到服务器。

服务器->客户端:已连接!数据包 - 我的代理再次收到数据包,它还会显示它并将其发送给客户端。

服务器->客户端:聊天频道数据包 - 我的代理再次收到数据包,它也显示它,但客户端没有收到它。也不例外。

我的代码: http: //lesderid.pastebin.com/Km7vT2jF

(这和这里是同一个项目:为什么我不能再发送到监听套接字了?

0 投票
1 回答
526 浏览

.net - Socket ReceiveFromAsync 是否隐含多线程?

我目前正在开发一个高性能的原始套接字应用程序。

我正在使用 ReceiveFromAsync 接收数据包。这听起来像是一个愚蠢的问题,但这是隐含的线程吗?我不确定我是否需要取出接收到的数据包并将处理线程化,以确保在处理当前数据包时不会阻塞任何其他数据包。文档并没有真正提到这一点。3.5 套接字的示例代码没有线程化,所以我最初的猜测是它被隐式处理。

谢谢

0 投票
1 回答
838 浏览

c# - 通过网络 tcp 的 xml 数据。请帮忙

我有设备。每个都在随​​机时间内通过特定端口向(服务器 IP 地址)发送数据。因为它是一个警报装置,并且有可能不止一个装置同时触发。数据采用 XML 格式。

现在我已经有了一个小的 Windows 应用程序来监听数据但是我遇到了一些问题

  1. 问题是应用程序正在嗅探数据包。意味着我可以在 TCP 数据包中获取数据……这意味着我将在数据包中划分 XML 而不是按顺序(按时间排序)……这使得读取 XML 数据变得如此困难或只需安排它并从中读取。我需要读取来自设备的数据并将其保存为 XML 格式。即使我正在收听一台设备,数据包也没有按顺序排列

任何想法如何做到这一点。我在这里看到了一些其他问题,我尝试了所有这些答案,但没有谈论读取 XML 文件。我使用与本文相同的代码

http://www.codeproject.com/KB/IP/CSNetworkSniffer.aspx

0 投票
1 回答
25473 浏览

c - 生成和发送数据包的 C 代码

我想知道C中的内置库函数来构建一个完整的数据包(连同帧)并通过网络发送它......任何人都可以上传执行上述内容的C代码...... :)

0 投票
2 回答
2485 浏览

c++ - Winsock 替代品(不,不是 WinPCAP)

Winsock for C++ 是否有任何可行的替代方案?我需要的原因是因为 Winsock 的原始套接字行为不正常(不,这是不可修复的,不要浪费您的时间询问)并且 WinPCAP 只能监控网络流量,而不是实际接收数据包。我需要可以接收完整数据包的东西,包括任何 IP、UDP、TCP 标头等。这样的东西是否存在,如果不存在,为什么不存在?

0 投票
1 回答
560 浏览

c - How to generate 8 byte hex value?

I want to generate this sequential data in C:

next

Next will be the next 8 hexadecimal characters and so on for say 100 bytes. How can I do it? Can we do it using character array?

0 投票
2 回答
128 浏览

udp - 监控进出应用程序的数据包

我正在使用 TeamSpeak 3 SDK 构建一个 VoIP 应用程序。有没有办法查看进出服务器/客户端应用程序的 UDP 数据包?

0 投票
4 回答
11838 浏览

usb - USB 主机何时需要在控制读取传输结束时使用零长度的 IN 数据包?

我正在为 USB 设备编写代码。假设 USB 主机启动控制读取传输以从设备读取一些数据,并且请求的数据量(设置数据包中的 wLength)是端点 0 最大数据包大小的倍数。那么在主机收到所有数据后(以数个最大数据包的 IN 事务的形式),它是否会发起另一个 IN 事务以查看是否还有更多数据,即使不能更多?

这是我想知道的事件序列示例:

  1. USB 枚举过程:端点 0 上的最大数据包大小报告为 64。
  2. SETUP-DATA-ACK 事务启动控制读取传输,wLength = 128。
  3. IN-DATA-ACK 事务将前 64 个字节的数据传送到主机。
  4. IN-DATA-ACK 事务将最后 64 个字节的数据传送到主机。
  5. 带有零长度数据包的 IN-DATA-ACK?这种交易是否发生过?
  6. OUT-DATA-ACK 事务完成传输的状态阶段;转移结束。

我在我的计算机上测试了这个(Windows Vista,如果重要的话),答案是否定的:主机足够聪明,知道无法从设备接收更多数据,即使设备发送的所有数据包都已满(端点 0 上允许的最大大小)。我想知道是否有任何主机不够聪明,并且会尝试执行另一个 IN 事务并期望收到一个零长度的数据包。

我想我从 usb.org 阅读了 USB 2.0 和 USB 3.0 规范的相关部分,但我没有发现这个问题得到解决。如果有人能指出我在这些文件中的正确部分,我将不胜感激。

我知道如果设备选择发送的数据少于 wLength 中请求的主机,则可能需要一个零长度的数据包。

我知道我可以使我的代码足够灵活以处理任何一种情况,但我希望我不必这样做。

感谢任何可以回答这个问题的人!

0 投票
2 回答
116 浏览

tcp - TCP 协议:主机暂时不可用

假设我们的客户端以恒定速率发送数据包。现在,如果服务器暂时宕机,可能有两种情况

(我们使用的是 TCP 协议)

1)数据包不会被传递到服务器。因此,线路中的其他数据包必须等待服务器响应。并且可以从那里进行通信。

2)这个包不会被投递,会重试,但其他包不会受到这个包的影响。

比如说,数据包 A、B 和 C 将被传输。当我发送数据包 A 时,服务器暂时关闭,然后数据包 B 和 C 将在最初计划的时间发送,或者一旦服务器接收到 A,它们将被发送。

0 投票
2 回答
5265 浏览

sockets - 通过 TCP/IP 传输浮点值和数据损坏

我有一个非常奇怪的错误。

我有两个通过 TCP/IP 进行通信的应用程序。

应用程序 A 是服务器,应用程序 B 是客户端。

应用程序 A 每 100 毫秒向应用程序 B 发送一堆浮点值。

错误如下:有时应用程序 B 接收到的某些浮点值与应用程序 A 传输的值不同。

最初,我认为以太网或 TCP/IP 驱动程序有问题(某种数据损坏)。然后我在其他 Windows 机器上测试了代码,但问题仍然存在。

然后我在 Linux(Ubuntu 10.04.1 LTS)上测试了代码,问题仍然存在!!!

这些值在它们被发送之前和在它们被接收之后被记录。

代码非常简单:消息协议有一个 4 字节的标头,如下所示:

当我收到“方向”消息时,有时“方位角”值与服务器发送的值不同!

数据不应该一直都一样吗?TCP/IP 不能保证数据的传输不受破坏吗?数学协处理器中的异常会影响 TCP/IP 堆栈吗?我先收到少量字节(4 个字节)然后收到消息正文,这是一个问题吗?

编辑:

问题在于字节顺序交换例程。以下代码交换特定浮点数的字节序,然后再次交换它并打印字节:

输出是:

7F 8A 26 BF 7F 加州 26 BF

即浮点赋值可能使值标准化,产生与原始值不同的值。

欢迎对此提出任何意见。

编辑2:

谢谢大家的回复。问题似乎在于交换的浮点数在通过“return”语句返回时被推入 CPU 的浮点堆栈。然后调用者从堆栈中弹出值,该值被四舍五入,但它是交换的浮点数,因此四舍五入会弄乱值。