Ivan Savenko
35954dc41b
Simple workaround to fix vcmiserver shutdown procedure
...
At the moment, vcmilobby *requires* async writes in order to handle
multiple connections with different speeds and at optimal performance,
without hanging if one player is too slow and can't eat all data server
sent to him at once.
However server (and potentially - client) can not handle this mode and
may shutdown either socket or entire asio service too early, before all
writes are performed, leading to weird freeze on ending scenario where
client would not receive notifications about end of game.
2024-05-14 19:40:20 +00:00
Ivan Savenko
6d08ec6323
More robust handling of connection errors
...
Fixes potentially hanging by heartbeat sockets
2024-05-12 19:13:17 +00:00
Ivan Savenko
0403626c93
Fix excessive calls of steady_timer::async_wait
2024-05-11 16:10:07 +00:00
Ivan Savenko
67604e1e01
Reapply "Simple implementation of heartbeat package"
...
This reverts commit ede92c1a9c
.
2024-05-11 16:10:08 +00:00
Ivan Savenko
4c3aac8f19
Use async_write to prevent locks if receiver is too slow
2024-05-11 16:09:03 +00:00
Ivan Savenko
66e2e13ba1
Add few more safety checks to network connection logic
2024-05-07 08:34:47 +00:00
Ivan Savenko
ede92c1a9c
Revert "Simple implementation of heartbeat package"
...
This reverts commit 5f344e410a
.
2024-05-07 08:31:08 +00:00
Ivan Savenko
5f344e410a
Simple implementation of heartbeat package
2024-04-30 22:44:31 +03:00
Ivan Savenko
6901945b6e
Fix possible thread race on sending packet from two threads
2024-02-25 20:05:28 +02:00
Ivan Savenko
779625415f
Guard against concurrent writes on same asio::socket instance
2024-02-19 13:47:06 +02:00
Ivan Savenko
7dee24edae
Cleanup
2024-02-03 23:30:16 +02:00
Ivan Savenko
2c2bec791c
Fixes and cleanup of game client network shutdown and restart
2024-02-03 19:27:04 +02:00
Ivan Savenko
f97ffd8e9a
Better handling of disconnects, code cleanup
2024-02-02 15:32:06 +02:00
Ivan Savenko
29c0989849
Use std::byte to manage network data
2024-02-02 02:02:09 +02:00
Ivan Savenko
80e960bc8e
Finalized new TCP networking API
2024-01-19 23:52:28 +02:00
Ivan Savenko
22f0ca67c6
Fix connection to game lobby & map load
2024-01-19 23:49:59 +02:00
Ivan Savenko
0a1153e1c6
Switch client-server communication to new API
2024-01-19 23:49:59 +02:00
Ivan Savenko
de5227142b
Implemented message receiving / broadcasting
2024-01-19 23:49:59 +02:00
Ivan Savenko
dff9cf39c0
Implemented connection handling
2024-01-19 23:49:59 +02:00
Ivan Savenko
c2c43602ea
Initial version of global lobby server available in client
2024-01-19 23:49:59 +02:00