Linux通过shell终端直接打开socket文件进行TCP、UDP通信
linux中有一个特殊的文件/dev/tcp,打开这个文件就类似于发出了一个socket调用,建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据。
- 打开/dev/tcp
以读写方式打开/dev/tcp,并指定服务器名为: www.csdn.net,端口号为:80,指定描述符为81
exec 8<>/dev/tcp/www.csdn.net/80
命令解读:
1 |
|
echo -e “GET”>&FD
解析:echo -e是以某种格式发出去(忘了-e是代表二进制还是ASCII了);```>&```表示流的流向,表示向哪个fd写入,其中```&```的作用是区分```>```的大于号意义,>比较大小而```>&```表示流的定向。
3. 读文件
读取返回的信息:cat<&8;如果HTTP请求被回应,这个时候应该能够读出一点```<html>xxxx</html>```出来。
- Attention
有些版本的bash可能默认不支持对```/dev/tcp```的打开。此时可以在编译bash的时候增加一个参数:```--enable-net-redirections```然后重新编译bash即可。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 PeaceMaker!
评论
DisqusWaline