Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在原始套接字上实现协议并使用O_DIRECT_Bash_Sockets_Linux Kernel_Network Protocols - Fatal编程技术网

Bash 在原始套接字上实现协议并使用O_DIRECT

Bash 在原始套接字上实现协议并使用O_DIRECT,bash,sockets,linux-kernel,network-protocols,Bash,Sockets,Linux Kernel,Network Protocols,因此,我试图在原始套接字之上实现TCP的一个玩具(bash?),以便更好地理解该协议 我知道/dev/raw不赞成使用O_DIRECT(为什么?),并且在我的内核中没有启用 $ zgrep -i raw /proc/config.gz CONFIG_IP_NF_RAW=m CONFIG_IP6_NF_RAW=m CONFIG_SERIO_RAW=m # CONFIG_RAW_DRIVER is not set CONFIG_SND_RAWMIDI=m CONFIG_SND_RAWMIDI_SEQ

因此,我试图在原始套接字之上实现TCP的一个玩具(bash?),以便更好地理解该协议

我知道/dev/raw不赞成使用O_DIRECT(为什么?),并且在我的内核中没有启用

$ zgrep -i raw /proc/config.gz
CONFIG_IP_NF_RAW=m
CONFIG_IP6_NF_RAW=m
CONFIG_SERIO_RAW=m
# CONFIG_RAW_DRIVER is not set
CONFIG_SND_RAWMIDI=m
CONFIG_SND_RAWMIDI_SEQ=m
CONFIG_HIDRAW=y
CONFIG_USB_SERIAL_SIERRAWIRELESS=m
CONFIG_USB_GADGET_VBUS_DRAW=2
# CONFIG_LINE6_USB_RAW is not set
CONFIG_ATH6KL_HTC_RAW_INTERFACE=y

我找不到关于如何使用O_DIRECT在没有linux的TCP实现的情况下发送数据的信息,我想我应该使用O_DIRECT。

这是一篇关于FreeBSD 7.0和linux 2.6中原始套接字的信息性文章

未经加工的袜子被揭开神秘面纱

SOCK_RAW Demystified是我写的一篇文章,解释了FreeBSD 7.0和Linux 2.6内核中原始套接字机制的实现。它深入研究了网络内部,展示了这种功能强大的套接字类型的细节以及它在幕后的工作方式


如果Bash中没有
/dev/tcp
,您可能需要查看richardstevens的sock程序(http://www.icir.org/christian/sock.html).

O_DIRECT仅适用于诚实的文件和阻止设备。