Skip to content

Commit 3aae8a6

Browse files
committed
rust networking examples
0 parents  commit 3aae8a6

File tree

4 files changed

+28
-0
lines changed

4 files changed

+28
-0
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/target

Cargo.lock

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[package]
2+
name = "rust-net"
3+
version = "0.1.0"
4+
edition = "2021"
5+
6+
[dependencies]

src/main.rs

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
use std::io::Write;
2+
use std::net::{Shutdown, TcpStream};
3+
use std::fs::File;
4+
5+
fn main() {
6+
let mut s = TcpStream::connect(("google.com", 80)).unwrap();
7+
write!(s, "GET /index.html HTTP/1.0\r\n\r\n").unwrap();
8+
s.flush().unwrap();
9+
s.shutdown(Shutdown::Write).unwrap();
10+
let response = std::io::read_to_string(s).unwrap();
11+
let mut page = File::create("google-hello.html").unwrap();
12+
let body_start = response.find("\r\n\r\n").unwrap() + 4;
13+
page.write_all(&response[body_start..].as_bytes()).unwrap();
14+
}

0 commit comments

Comments
 (0)