Allmän information, slides och uppgifter
Under denna vecka ska ni implementera nätverksprotokollet som ni utvecklade under övningen för att kunna spela mot varandra över ett nätverk med era schackspel. Ert program ska både kunna ansluta till en motståndare och ta emot anslutningar. Specifikationen för protokollet finns här. Det går bra att välja server-/klientroll med en flagga på kommandoraden (ni behöver alltså inte lägga till nån slags grafisk meny eller dylikt).
För att använda TCP i Rust behöver ni ha koll på dessa structs:
std::net::TcpListener:
Används för att ta emot anslutningar på serversidan.std::net::TcpStream:
Används på båda sidor för att läsa och skriva data.Eftersom ni både ska köra era vanliga spelslinga och
vänta på meddelanden samtidigt, kan det vara bra att
sätta “non-blocking” mode på TCP-streamen. Dokumentation
för detta finns här
(observera hanteringen av felkoden WouldBlock).
Ni fortsätter arbeta med de repon ni skapade i förra uppgiften (kth_id-gui).
Tips: För att testa era program lokalt kan ni använda er av
loopbackadressen 127.0.0.1.
Lycka till!