标签: socket

每个套接字都有一个文件吗?

UNIX 世界中的“一切都是文件”。

上面这句话很有名。当我运行时echo "hello programmer" >> /dev/tty1,我可以在TeleType 1 ...上观看给定的字符串。

每个文件是什么以及在哪里socket?假设我的朋友连接到我的电脑,它的 IP 是h.h.h.h,我如何访问相应的文件?是否可以?

kernel files socket

28
推荐指数
3
解决办法
3万
查看次数

发送套接字消息的简单shell脚本

出于测试目的,我需要创建一个 shell 脚本,该脚本与远程 IP>Port 连接并发送一个简单的文本 TCPIP 套接字消息。

shell-script socket tcp-ip

27
推荐指数
3
解决办法
9万
查看次数

为什么套接字路径长度限制为一百个字符?

在 Unix 系统上,路径名通常几乎没有长度限制(Linux 上为 4096 个字符)...除了套接字文件路径限制为大约 100 个字符Linux上为 107 个字符)。

  • 第一个问题:为什么限制这么低?

我已经检查过是否可以通过更改当前工作目录并在各个目录中创建多个使用相同路径的套接字文件来解决此限制./myfile.sock:客户端应用程序似乎正确连接到预期的服务器进程,即使lsof显示所有他们在同一个套接字文件路径上侦听。

  • 这种解决方法可靠还是我很幸运?
  • 这种行为是特定于 Linux 的还是这种解决方法也适用于其他 Unix?

filenames limit socket unix-sockets

26
推荐指数
2
解决办法
8290
查看次数

是 Unix Internet 套接字文件吗?

我知道“一切都是文件”是 Unix 的主要概念之一,但是套接字使用内核提供的不同 API(如套接字、sendto、recv 等),而不是像普通的文件系统接口。

“一切都是文件”在这里如何应用?

files socket unix-philosophy

25
推荐指数
4
解决办法
3685
查看次数

Linux 中 unix 域套接字路径开头的 @ 符号表示什么?

当我运行netstat --protocol unixlsof -U我看到某些 unix 套接字路径前面带有 @ 符号,例如@/tmp/dbus-qj8V39Yrpa。然后当我运行时,ls -l /tmp我没有看到名为的文件dbus-qj8V39Yrpa 的

问题是前面的@ 符号表示什么?第二个相关问题是——我在哪里可以找到文件系统上的unix 套接字文件(@/tmp/dbus-qj8V39Yrpa)?

linux path socket

23
推荐指数
2
解决办法
2万
查看次数

如何使 TCP 套接字超时

对于我们服务器环境的网络灾难模拟,我们正在寻找一种有意使 TCP 套接字超时的方法。现有的套接字有什么简单的方法吗?此外,小的 C 测试用例程序将是一个加分项。

我们已经尝试在 TCP 缓冲区读取期间关闭网络接口,并从断开连接的挂载资源 (samba) 中读取。

出测试服务器是 Ubuntu 12.04.4。

timeout socket

21
推荐指数
2
解决办法
7万
查看次数

内核套接字结构和 TCP_DIAG

我正在开发一个连接到实时数据服务器(使用 TCP)的软件,但我有一些连接丢失。我的猜测是客户端读取来自服务器的数据的速度不够快。因此我想监控我的 TCP 套接字。为此,我找到了“ss”工具。

此工具允许查看每个套接字的状态 - 这是命令输出的示例行 ss -inm 'src *:50000'

ESTAB      0      0             184.7.60.2:50000       184.92.35.104:1105
  mem:(r0,w0,f0,t0) sack rto:204 rtt:1.875/0.75 ato:40
Run Code Online (Sandbox Code Playgroud)

我的问题是:内存部分是什么意思?查看该工具的源代码,我发现数据来自内核结构(sockin sock.h)。更准确地说,它来自领域:

r = sk->sk_rmem_alloc
w = sk->sk_wmem_queued;
f = sk->sk_forward_alloc;
t = sk->sk_wmem_alloc;
Run Code Online (Sandbox Code Playgroud)

有人知道他们的意思吗?我的猜测是:

  • rmem_alloc : 入站缓冲区的大小
  • wmem_alloc : 出站缓冲区的大小
  • sk_forward_alloc :???
  • sk->sk_wmem_queued :???

这是我的缓冲区大小:

net.ipv4.tcp_rmem = 4096        87380   174760
net.ipv4.tcp_wmem = 4096        16384   131072
net.ipv4.tcp_mem = 786432       1048576 1572864
net.core.rmem_default = 110592
net.core.wmem_default = 110592
net.core.rmem_max = 1048576
net.core.wmem_max = 131071
Run Code Online (Sandbox Code Playgroud)

linux tcp socket

18
推荐指数
1
解决办法
8224
查看次数

如何获取有关套接字文件的更多信息?

对于像这样的套接字文件:

# ls -alti socket
14112 srw------- 1 root root 0 Nov 15 20:03 socket
# cat socket
cat: socket: No such device or address
Run Code Online (Sandbox Code Playgroud)

由于cat命令在这里没用,有什么方法可以获取有关套接字文件的更多信息?比如它在监听哪个端口?等等。

linux filesystems socket

18
推荐指数
1
解决办法
3万
查看次数

= 在 ls 输出中的 .sock 文件末尾签名

我在 emacs 中运行 zsh shell。当我运行时,ls=.sock文件末尾得到一个。这是什么=意思?它是unix套接字独有的吗?

ls socket

17
推荐指数
1
解决办法
3576
查看次数

理解lscpu的输出

您可以看到lscpu命令的输出-

jack@042:~$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                56
On-line CPU(s) list:   0-55
Thread(s) per core:    2
Core(s) per socket:    14
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 79
Model name:            Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz
Stepping:              1
CPU MHz:               2600.000
CPU max MHz:           2600.0000
CPU min MHz:           1200.0000
BogoMIPS:              5201.37
Virtualization:        VT-x
Hypervisor vendor:     vertical
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K …
Run Code Online (Sandbox Code Playgroud)

cpu socket multithreading lscpu

17
推荐指数
1
解决办法
2万
查看次数