diff options
| author | ubq323 <ubq323@ubq323.website> | 2024-04-13 01:46:53 +0100 | 
|---|---|---|
| committer | ubq323 <ubq323@ubq323.website> | 2024-04-13 01:46:53 +0100 | 
| commit | 0fc5f56e6287541901dc956115f44e9bad93279d (patch) | |
| tree | 8202b8edeb5ffe8761256665fa7fd96817afedd2 /server | |
| parent | bf03e2a0d86a4b5202a72aa66da5dc0e2c0b412b (diff) | |
server sends chunk data to client!!! code quality is declining steadily
Diffstat (limited to 'server')
| -rw-r--r-- | server/main.ha | 18 | 
1 files changed, 17 insertions, 1 deletions
diff --git a/server/main.ha b/server/main.ha index 9f21932..ae7d9eb 100644 --- a/server/main.ha +++ b/server/main.ha @@ -41,7 +41,13 @@ export fn main() void = {  	for (const p &.. pictures) drawing::clear_picture(p, 0xffffff); -	const listener = tcp::listen(ip::ANY_V4, PORT)!; +	const listener = match(tcp::listen(ip::ANY_V4, PORT)) { +	case let err: net::error => +		fmt::fatalf(net::strerror(err)); +	case let sock: net::socket => +		yield sock; +	}; +  	loop(listener, pictures);  }; @@ -111,6 +117,7 @@ fn loop(listener: net::socket, pictures: []drawing::picture) void = {  			});  			append(packet_readers, packet_reader::new());  			fmt::printfln("there are now {},{} conns.",len(pollfds),len(packet_readers))!; +			send_world(new_conn, pictures)!;  		};  		for (let connidx = 1z; connidx < len(pollfds); connidx += 1) {  			if (0 != pollfds[connidx].revents & poll::event::POLLIN) { @@ -153,3 +160,12 @@ fn handle_packet(pictures: []drawing::picture, pollfds: []poll::pollfd, packet:  	};  }; +fn send_world(conn: io::file, pictures: []drawing::picture) (void | io::error) = { +	for (const pic &.. pictures) { +		packet_reader::send(conn, packet_reader::packet_sendchunk { +			world_pos = pic.world_pos, +			chunk_data = pic.d[..pic.w*pic.h], +		})?; +	}; + +};  | 
