# Homework 3 - Chess Networking Nu kan ni alla spela schack, men det är ju väldigt tråkigt att spela schack själv. Veckans läxa är därför att implementera networking för erat schack så att ni kan spela emot varandra. Ni ska först skapa ett gemensamt schack protokoll. Detta kommer ni ha gjort under övningen. ## Formalisera ett gemensamt protokoll (delgrupp uppgift) Delegera ansvar till en delgrupp att beskriva protokollet formellt över helgen. De ska ladda upp specificationen till ett offentligt repo i Inda24plusplus organisationen som heter `chess-network-protocol`. Om ni lägger till mer fancy/mindre viktiga features (såsom undo och liknande) är det schyst att markera dessa som mindre vitala. ## Implementera protokollet Fortsätt jobba med ert GUI och gör det möljligt att spela online enligt det gemensamma protokollet. ## Resurser * [Rust std::net::TcpStream](https://doc.rust-lang.org/stable/std/net/struct.TcpStream.html) ### Server ```rust use std::io::prelude::*; use std::net::TcpListener; fn main() -> std::io::Result<()> { let listener = TcpListener::bind("127.0.0.1:5000")?; // accept connections and process them serially let (mut stream, _addr) = listener.accept()?; let mut buf = [0u8; 1]; stream.read(&mut buf)?; println!("Recieved: {}", buf[0]); Ok(()) } ``` ### Client ```rust use std::io::prelude::*; use std::net::TcpStream; fn main() -> std::io::Result<()> { let mut stream = TcpStream::connect("127.0.0.1:5000")?; stream.write(&[1])?; Ok(()) } ```