获取百度主页
exec 8<> /dev/tcp/www.baidu.com/80
知识点:
- linux系统中一切皆文件
- 把这个8理解为Java中的引用对象
- exec 文件重定向
- 文件描述符
cd /proc/$$/fd
知识点:
- /proc文件夹
- $$当前进程ID
- fd
ll
知识点:
- 此时已与百度建立socket连接(TCP连接已经有了,三次握手)
- 什么是三次握手四次分手?
- 怎么连接的?
- 什么是socket ?socket 通信✨
下一步我要和百度说什么话,百度能给我主页,此时与HTTP有关
发这样的话:
GET / HTTP/1.0\n
那怎样发过去呢?
echo -e 'GET / HTTP/1.0\n' 1>& 8
知识点:
- -e
- 标准输入标准输出
- &
此时回车,咔,内容就发给百度了,那百度就得给我们返回内容,那么返回的东西怎么看呢?
这样看
cat 0<& 8
知识点:
- cat
- 标准输入标准输出
Java Socket编程
/**
* @author tengwz
*/
public class TestClient {
public static void main(String[] args) throws Exception {
Socket socket = null;
InputStream is = null;
OutputStream ops = null;
try {
socket = new Socket("www.baidu.com", 80);
is = socket.getInputStream();
ops = socket.getOutputStream();
ops.write("GET / HTTP/1.1\n"