- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在研究通过 TCP 将嵌入式电路板连接到 PC。
该板包含一个 chip遗憾的是,它不会在接收数据时产生任何中断。但它确实会在接收到“Keep-Alive”信号时产生中断。
目前我必须轮询数据。相反,我在想,我将从 PC 发送数据,然后发送 KeepAlive 信号。每当收到 KeepAlive 时,我也会读取数据。我知道这可能会产生错误警报,但它比连续轮询要好。
我在 Wireshark 上观察到一个 Keep-Alive 数据包,它有一个字节的数据并且是“00”。
然后我尝试发送数据为“00”的 TCP 数据包:
我可以看到,只有 Flag
部分不同。
我有两个问题:
更新: 我已经尝试过 RawSockets,但这对我没有帮助,或者我错过了一些东西。我只是在 RAW Sockets header 中将 Flag 更改为 ACK。
最佳答案
RFC 1122 section 4.2.3.6可能值得一读。
它声明保持事件是 TCP 实现的可选功能。它还指出,keepalive 信号应限制为最多每两小时一个。因此,从您的应用程序中手动发出一个通常不是所需的功能。
此外,它还描述了有关实现的细节,特别是指出了涉及的序列号。这是您的屏幕截图中可见的一个差异,您显然没有注意到:真正的保活数据包有一个非常高的相对序列号,它只是 -1 的无符号表示。要使用原始套接字重现这一点,我认为您必须以某种方式获得现有连接的当前 TCP 序列号。还没有充分使用 RawSockets 来了解如何执行此操作的详细信息。
让系统定期发送 keepalive 的支持方法是使用 SO_KEEPALIVE
选项。但我认为,在特定时间及时发出这样的信号不会有多大用处。
关于c++ - 模拟 Keep Alive 信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18889437/
HTTP Keep Alive是如何实现的?它在内部使用 TCP Keep Alive 吗?如果不是,服务器如何检测客户端是死是活? 最佳答案 我知道这是一个老问题,但仍然: HTTP Keep-Al
我尝试添加新标题的方法: request.Headers.GetType().InvokeMember("ChangeInternal", BindingFlags.Instance | Bi
我正在尝试实现一个功能来监听 door 1900 并捕获 Activity 消息和设备 ip,我尝试使用我发现的一些库,但我的应用程序一直在尝试启动应用程序时崩溃。 这是我的主要功能 pub
这是我的 haproxy.conf (haproxy 1.7.9) global log 127.0.0.1 local0 defaults retries 3
所以根据haproxy作者的说法,谁知道关于http的一两件事: Keep-alive was invented to reduce CPU usage on servers when CPUs we
我目前正在设计一个系统,我们需要知道用户是否仍然在线/登录。 该系统是基于 .Net 网络的,因此我们打算使用 AJAX/JSONP 代码来执行此操作,该代码每 2 分钟对服务器执行一次 ping 操
我正在为kong编写一个自定义插件。该插件将根据我的服务器转换请求/响应。我得到[info] 27#0: *588 client closed keepalive connection . 经过一番
如果一个网络服务器服务于多个虚拟主机(可以由客户端在HTTP请求头Host中选择)并且支持Keep-Alive,客户端是否允许使用不同的 Host header 通过同一连接发送后续请求? 最佳答
我正在查看 HTTP 1.1 spec 并且正在查看规范中与“Connection” header 相关的部分。我注意到为“连接” header 指定的唯一标记是“关闭”。经过一番挖掘后,我发现许多服
HTTP/1.1 服务器默认使用 Connection header 的 Keep-Alive 设置。为什么那么大多数浏览器是否在他们的请求中包含 Connection: Keep-Alive ,即使
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
据我所知,在 TCP 套接字上保持事件状态有助于了解套接字是否刚刚打开以及两个套接字之间的连接是否实际上处于事件状态。所以,我有几个关于 Winsocks2 中 Keepalive 用法的问题想咨询一
全部, 我有一个网站,该网站使用经典的 ASP 和 Crystal 报表根据用户在网页中的输入(查询后端数据库)生成报告。如果报告运行时间超过 30 分钟,则位于客户端和 Web 服务器之间的防火墙将
基本上,我想让 router-view 中的 2 个组件保持事件状态,并且它可以工作,但是,我不知道我是否做对了。 users 和 data 是路由名称。这是正确的方法吗? keep
我使用 ruby1.9.2p180(2011-02-18 修订版 30909)i686-linux。 Fiber#alive? 返回未定义的错误: fiber = Fiber.new{puts '
我在 macOS 本地主机上运行用 Go (1.12) 编写的客户端和套接字服务器。 服务器在 net.TCPConn 上设置 SetKeepAlive 和 SetKeepAlivePeriod。 客
用过 vue-element-admin 的同学一定很清楚,路由的配置直接关系侧边栏导航菜单的展示,也得益于这种设计思路,几乎大部分后台框架都采用这个方案,当然也包括了我写的 Fantastic-a
在项目开发过程中加载、启动、下载项目难免会用到进度条,如何使用Python实现进度条呢? 这里为小伙伴们分享四种Python实现进度条的库:Progress库、tqdm库、alive-progre
基本上,就是它所说的。 有什么意义? ?这听起来可能很愚蠢,但我认为其目的是缓存与当前未在 DOM 中呈现的组件关联的数据。根据this bug/issue , 专门设计用于在从页面中删除元素时删
Jmeter 中保持事件选项的用途是什么,它的工作原理是什么? 我使用 Jmeter 3.0 进行了性能测试 在我录制的脚本中保持事件选项被选中。 所以我在我的真实测试脚本中使用了保持事件选项 如果我
我是一名优秀的程序员,十分优秀!