---
# System prepended metadata

title: Läxa 4

---

# Läxa 4

## Läsning

### Obligatorisk läsning
Kapitel två om sockets i Beej's klassiska "Guide to Network Programming":
- https://beej.us/guide/bgnet/html/multi/theory.html

Stackoverflow:
- [UDP vs TCP, how much faster is it?](https://stackoverflow.com/questions/47903/udp-vs-tcp-how-much-faster-is-it)

### Rekommenderad läsning

Silence on the Wire, Kapitel 9. Första hälften av kapitlet handlar om hur Ethernet, IP protokollet, TCP och UDP fungerar. Förklaras väldigt bra. Andra hälften av kapitlet pratar om säkerhetsproblem i IP protokollet och TCP. (Finns som pdf på http://gen.lib.rus.ec/, men den fysiska boken kan allmänt rekommenderas för den som är intresserad av datasäkerhet.)

Ett spelprogrammerarperspektiv på UDP vs TCP:
- https://gafferongames.com/post/udp_vs_tcp/

Länkar till tutorials:
- https://doc.rust-lang.org/stable/book/ch20-00-final-project-a-web-server.html
- https://developers.google.com/protocol-buffers/

Network dokumentation för Rust:
- https://doc.rust-lang.org/std/net/index.html

## Uppgifter

### Programmering

Lägg till möjlighet att spela över nätverk i ditt GUI. Alla schackimplementationer ska kunna spela mot varandra. För att testa att det fungerar bör du prova att starta två instanser av ditt eget GUI, innan du testar att det fungerar mot någon annans GUI.

### Användbara Crates

Parsning och encoding av dataformat: https://serde.rs/
