tcp udp 改协程

This commit is contained in:
2026-06-23 09:23:02 +08:00
parent dcfbbedd64
commit abc077be9b
9 changed files with 120 additions and 0 deletions
+20
View File
@@ -115,6 +115,17 @@ void TCP_Client::tick() {
}
}
ucoro::awaitable<bool> TCP_Client::connect_coro() {
auto started = start_connect();
tick();
co_return started;
}
ucoro::awaitable<void> TCP_Client::tick_coro() {
tick();
co_return;
}
void TCP_Client::start_read() {
if (read_pending || state != Connected || !socket || !socket->is_open()) return;
@@ -169,12 +180,21 @@ std::string TCP_Client::read() {
return ret;
}
ucoro::awaitable<std::string> TCP_Client::read_coro() {
co_return read();
}
void TCP_Client::send(const std::string& data) {
if (data.empty()) return;
send_buffer.write_best_effort(data.data(), data.size());
if (state == Connected) start_write();
}
ucoro::awaitable<void> TCP_Client::send_coro(std::string data) {
send(data);
co_return;
}
std::string TCP_Client::to_string() {
return "TCP_Client:[" + dest_address.to_string() + "]";
}