sockets

套接字通信的响应时间不一致
sockets

套接字通信的响应时间不一致

我有一个测试设置,其中包含两个相同类型的定制设备:以太网交换机和工业 PC。交换机是 Moxa EDS 405,PC 是一台相对低配置的机器,配有 Atom 1.46 GHz CPU、4 Gb RAM 和 Intel I210 以太网控制器。 这些设备支持通过套接字传输数据。它们旨在通过交换机连接到 PC,并从 PC 上运行的应用程序进行轮询。该应用程序使用 .Net 方法套接字.发送和套接字。接收用于与设备之间传输数据。 我注意到,当应用程序轮询两个设备和仅轮询一个设备时,响应时间存在奇怪的不一致。基本上,当我将一个设备连接到 PC 时,发送和接收数据的平...

Admin

为什么 Windows 要通过主机名解析所有 NIC 的所有 IP?
sockets

为什么 Windows 要通过主机名解析所有 NIC 的所有 IP?

我在使用通过 HOSTNAME 工作的 TCP/IP 应用程序时遇到了不同的问题。安装此应用程序的服务器 (WIN Server 2012) 有 4 个 NIC 和 Windows,使用在 NIC 上配置的所有 IP 解析自己的主机名。 https://i.stack.imgur.com/9TEIh.png 因此,TCP/IP 应用程序使用不同的 IP 打开内部套接字(使用类似 HOSTNAME 的地址)。而我只需要解析 10.44.3.101 IP 的套接字。 有什么方法可以强制 Windows 主机名仅解析主 NIC? PD:我曾尝试从这里 HKEY_L...

Admin

IPTABLE 重复值的含义
sockets

IPTABLE 重复值的含义

我是 IPTABLES 新手,当我执行以下命令时 /sbin/iptables --list -n | grep 16381 我可以看到如下所示的多个条目: ACCEPT tcp -- a.b.c.d 0.0.0.0/0 tcp dpt:16381 ACCEPT tcp -- a.b.c.d 0.0.0.0/0 tcp dpt:16381 ACCEPT tcp -- a.b.c.e 0.0.0.0/0 tcp dp...

Admin

Systemctl Socket 与错误进程通信
sockets

Systemctl Socket 与错误进程通信

我正在尝试在运行 Debian 10 的 VM 上运行 Minecraft 服务器。我已将服务器设置为作为服务运行,并尝试使用套接字监听基于上次在 2019 年出现的活动的这个问题的 FIFO:使用 systemd 的 Exec* 命令将命令传递给进程 根据这些日志,我的理解是,我向 FIFO 发出的命令实际上并没有与正确的进程对话。以下是运行过程中的一些示例日志systemctl status minecraft-server: Oct 26 18:33:59 mc-server bash[1589]: [2021-10-26 18:33:59:697 I...

Admin

如何识别哪个进程正在向 Linux 上的某个主机发送数据?
sockets

如何识别哪个进程正在向 Linux 上的某个主机发送数据?

正如标题所示,我想找出负责特定流量的进程。我可以在 wireshark 中看到流量,但我不知道它是哪个进程。 有没有直接的方法可以做到这一点?我正在考虑在用于解析主机名的系统调用上使用 perf 和内核探测器,但我想知道是否有更简单的方法。谢谢。 ...

Admin

原始套接字如何工作?
sockets

原始套接字如何工作?

最近,我使用套接字模块在 Python 中开发了一个数据包嗅探器。为了做到这一点,我创建了一个 raw 类型的套接字。然后我开始接收和解析数据包。 我的假设是,默认情况下,操作系统上有一个原始套接字,它接收数据包并将其交给其他模块来解析该数据包。当我创建原始套接字时,它将是操作系统中的第二个原始套接字。 我的问题是,数据包是否被广播到操作系统中所有可用的原始套接字?因为在使用我的数据包嗅探器时,我可以看到与其他应用程序(例如浏览器)相关的数据包。这意味着这些数据包至少要经过两个套接字。其中一个是我的数据包嗅探器,另一个是真正的应用程序。对吗? ...

Admin

如何调查计算机停止 TCP 连接的原因?
sockets

如何调查计算机停止 TCP 连接的原因?

我刚刚写过这个问题在另一个 StackExchange 网站上,但我被建议在这里提出同样的问题。 我想扩大这个问题:我如何知道为什么主机关闭另一个主机请求的 TCP 套接字连接?((事件)日志、网络监控......) ...

Admin

apache httpd 可以在 unix 套接字上监听吗?
sockets

apache httpd 可以在 unix 套接字上监听吗?

我希望httpd(Apache 2.4.x) 通过 UNIX 域套接字来处理 HTTP 请求。听指示 似乎不允许指定套接字。是否有其他(未记录的?模块?)方法让 httpd 使用套接字? 编辑是因为有些人模糊地要求更多的“清晰度”: a)HTTP指的是HTTP协议。 b) 对于 UNIX 套接字,请参阅unix(7)。自然SOCK_STREAM使用 a。 假设有一个客户端程序能够通过 ab) 与 a) 进行通信,还有一个作为 httpd 模块实现的服务器程序,它们运行在同一系统上,并且已经提供了 a),但是通过 TCP 套接字,那么 httpd 是否可以配置...

Admin

传输层的地址?
sockets

传输层的地址?

在TCP/IP协议栈中存在以下协议级地址: 数据链路层-MAC地址 网络层-IP地址 传输层——? 应用层-套接字地址,即目标端口号和 IP 地址(如果是 UDP),源和目标端口号以及 IP 地址(4 元组) 我的问题:传输层如何区分不同的正在进行的 TCP 连接? 是否由于 TCP 与应用层进程绑定的性质,TCP 地址与套接字(应用程序进程地址)是相同的地址?或者套接字地址是与应用程序进程绑定/连接的 TCP 地址? ...

Admin

USB 访问读卡器的 TCP 服务器设备
sockets

USB 访问读卡器的 TCP 服务器设备

我有一个条形码读取器,它通过 USB 电缆将数据输出到虚拟 COM 端口(RS232 串行)。我有一台运行和管理设施的服务器,我需要通过 TCP/IP 读取来自条形码读取器的数据。问题是服务器上的软件无法读取 USB 设备/串行设备。它可以执行套接字,我正在尝试找到一个带有 TCP 客户端的设备,该设备接受 USB 连接并通过 TCP 套接字将数据发送到服务器。有什么建议吗? ...

Admin

将套接字连接到同一 NAT 中的另一台 PC
sockets

将套接字连接到同一 NAT 中的另一台 PC

嘿,我在同一个网络上有两台机器。它们从外部网络服务器获取 IP 信息。由于 NAT,IP 相同,但本地端口不同。嗯,这很奇怪……它们无法连接,甚至无法互相看到。示例: Microsoft Telnet> open 1.129.108.250 16054 Connecting To 1.129.108.250...Could not open connection to the host, on port 16054: Connect failed C:\Users\Andrew>ping 1.129.108.250 Pinging 1.129...

Admin

来自本地网络的 WebSocket 连接在连接到本地网络服务器时都使用相同的客户端端口(而不是临时端口)——为什么?
sockets

来自本地网络的 WebSocket 连接在连接到本地网络服务器时都使用相同的客户端端口(而不是临时端口)——为什么?

我在家用台式机上的虚拟机上设置了一个 Web 服务器。我让路由器将多个端口(80、443 等)转发到我的台式机,然后通过 NAT 将它们转发到虚拟机(请参阅图表举例来说)。在运行简单的 Apache 服务器时,这似乎工作得很好。然而,当我尝试使用 WebSockets 时,我遇到了问题。 我设置了一个简单的 WebSocket 回显服务器(完全复制自https://www.boost.org/doc/libs/master/libs/beast/example/websocket/server/async-ssl/websocket_server_async...

Admin

Bash:从套接字文件描述符读取总是返回相同的数据而不是阻塞
sockets

Bash:从套接字文件描述符读取总是返回相同的数据而不是阻塞

我有一个像这样启动的 postgres: exec 3< <(su -l postgres -c "/usr/local/pgsql/bin/postmaster -p '$port' -d 3 -D '$backupDir' 2>&1 & echo \$!") 这会将所有日志重定向到套接字文件描述符 3 postgres postgres 64 Mar 19 16:32 3 -> socket:[7119806] 然后我读到: while [ true ] do read -u 3 line ... ...

Admin

增加 Linux 上特定套接字的缓冲区大小
sockets

增加 Linux 上特定套接字的缓冲区大小

我正在使用 CentOS7,并且必须增加侦听特定端口的套接字上的发送缓冲区大小 (SO_SNDBUF)。打开该端口的应用程序本身不支持此功能。 我尝试过一些可以增加发送缓冲区大小的方法: 在操作系统上执行此操作-无法执行,因为此缓冲区大小更改必须仅适用于此连接。 Stunnel – 可以完成这项工作,但是客户端的应用程序本身不支持 SSL。 Socat - 这很有可能实现,但到目前为止我只讲了 1 小时的课,甚至还没有触及表面。 编辑:介绍一下背景。我们有一位来自亚洲的客户试图通过交叉连接连接到我们 Java 应用程序上特定套接字上的端口。客户遇到了延迟...

Admin