added implemetation of info command on te server
This commit is contained in:
parent
71fe467ca2
commit
b66fdd62b3
|
|
@ -2,6 +2,7 @@ pub mod client_management;
|
||||||
|
|
||||||
|
|
||||||
use std::sync::{Arc, Weak, Mutex};
|
use std::sync::{Arc, Weak, Mutex};
|
||||||
|
use std::collections::HashMap;
|
||||||
use std::net::TcpListener;
|
use std::net::TcpListener;
|
||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
use std::io::Read;
|
use std::io::Read;
|
||||||
|
|
@ -44,30 +45,38 @@ impl Server {
|
||||||
impl ICooperative for Server{
|
impl ICooperative for Server{
|
||||||
fn tick(&self) {
|
fn tick(&self) {
|
||||||
|
|
||||||
let mut buffer = vec![0; 1024];
|
let mut buffer = vec![0; 64];
|
||||||
|
|
||||||
// get connections
|
// handle new connections
|
||||||
for connection in self.server_socket.incoming() {
|
for connection in self.server_socket.incoming() {
|
||||||
match connection {
|
match connection {
|
||||||
Ok(mut stream) => {
|
Ok(mut stream) => {
|
||||||
let _ = stream.write(Commands::Request(None).to_string().as_bytes());
|
stream.write_all(Commands::Request(None).to_string().as_bytes()).expect("error writing socket");
|
||||||
let _ = stream.read(&mut buffer);
|
stream.read_to_end(&mut buffer).expect("error reading sokcet");
|
||||||
|
|
||||||
|
println!("buffer: {:?}", &buffer);
|
||||||
|
|
||||||
let command = Commands::from(&mut buffer);
|
let command = Commands::from(&mut buffer);
|
||||||
|
|
||||||
match command {
|
match command {
|
||||||
Commands::Info(None) => {let _ = stream.write("todo".as_bytes());}
|
Commands::Info(None) => {
|
||||||
|
let server_config = vec![
|
||||||
|
("name".to_string(), "Test server".to_string())
|
||||||
|
];
|
||||||
|
let map: HashMap<String, String> = server_config.into_iter().collect();
|
||||||
|
stream.write_all(Commands::Success(Some(map)).to_string().as_bytes())
|
||||||
|
.expect("error sending response");
|
||||||
|
}
|
||||||
|
Commands::Connect(Some(map)) => println!("connect command: {:?}", &map),
|
||||||
|
|
||||||
_ => {let _ = stream.write("not implemented!".as_bytes());}
|
_ => {let _ = stream.write("not implemented!".as_bytes());}
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
_ => println!("!connection error occured!"),
|
_ => println!("!connection error occured!"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// handle new messages loop
|
||||||
|
|
||||||
// message loop
|
|
||||||
for message in self.receiver.iter() {
|
for message in self.receiver.iter() {
|
||||||
match message {
|
match message {
|
||||||
ServerMessages::ClientConnected(client) => println!("client connected: {:?}", client),
|
ServerMessages::ClientConnected(client) => println!("client connected: {:?}", client),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue