update:进度更新。
This commit is contained in:
parent
2c586e3ccb
commit
8f95f666e2
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -123,6 +123,7 @@
|
||||
"shared_mutex": "cpp",
|
||||
"thread": "cpp",
|
||||
"variant": "cpp",
|
||||
"*.ipp": "cpp"
|
||||
"*.ipp": "cpp",
|
||||
"xthread": "cpp"
|
||||
}
|
||||
}
|
@ -6,7 +6,7 @@
|
||||
|
||||
例如:
|
||||
|
||||
`API`功能示例描述:帮我起一个简短的全大写的名字,如`Absolute battery charging voltage too low`,可以起名`MOI_CLOSE_FAILED`,帮我总结:LoadPort not initialized or initialized incorrectly,注意,直接回复我结果就行,不要添加任何其他内容。
|
||||
`API`功能示例描述:帮我起一个简短的全大写的名字,如`Absolute battery charging voltage too low`,可以起名`AB_BATTERY_LOW_VOL`,帮我总结:LoadPort not initialized or initialized incorrectly,注意,直接回复我结果就行,不要添加任何其他内容。
|
||||
|
||||
然后只需要提交数据,获取返回结果。
|
||||
|
||||
|
@ -12,8 +12,8 @@
|
||||
|
||||
enum FrameType : int16_t {
|
||||
TYPE_REQUEST = 0,
|
||||
TYPE_RESPONSE,
|
||||
TYPE_ERROR
|
||||
TYPE_RESPONSE_SUCCESS,
|
||||
TYPE_RESPONSE_ERROR
|
||||
};
|
||||
|
||||
struct FrameData {
|
||||
|
35
server.cxx
35
server.cxx
@ -74,10 +74,43 @@ void Server::th_client(const std::shared_ptr<asio::ip::tcp::socket>& socket, con
|
||||
}
|
||||
if (frame->type == FrameType::TYPE_REQUEST) {
|
||||
ask_mutex_.lock();
|
||||
//
|
||||
std::string recv_data(frame->data, frame->len);
|
||||
std::string out{};
|
||||
if (!worker_->post(post_data(recv_data), out)) {
|
||||
std::cout << client_key << " data post error" << std::endl;
|
||||
FrameData req;
|
||||
req.type = FrameType::TYPE_RESPONSE_ERROR;
|
||||
send_frame(socket, req);
|
||||
} else {
|
||||
FrameData req;
|
||||
req.type = FrameType::TYPE_RESPONSE_SUCCESS;
|
||||
req.data = new char[out.size()];
|
||||
req.len = out.size();
|
||||
memcpy(req.data, out.c_str(), out.size());
|
||||
send_frame(socket, req);
|
||||
}
|
||||
ask_mutex_.unlock();
|
||||
}
|
||||
delete frame;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::string Server::post_data(const std::string& data)
|
||||
{
|
||||
return std::string();
|
||||
}
|
||||
|
||||
bool Server::send_frame(const std::shared_ptr<asio::ip::tcp::socket>& socket, FrameData& data)
|
||||
{
|
||||
asio::error_code error;
|
||||
char* send_data{};
|
||||
int len{};
|
||||
|
||||
if (!com_pack(&data, &send_data, len)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
auto send_len = socket->send(asio::buffer(send_data, len));
|
||||
return send_len == len;
|
||||
}
|
||||
|
3
server.h
3
server.h
@ -30,6 +30,9 @@ private:
|
||||
void th_client(const std::shared_ptr<asio::ip::tcp::socket>& socket,
|
||||
const std::string& client_key);
|
||||
|
||||
std::string post_data(const std::string& data);
|
||||
bool send_frame(const std::shared_ptr<asio::ip::tcp::socket>& socket, FrameData& data);
|
||||
|
||||
private:
|
||||
asio::io_context& io_context_;
|
||||
asio::ip::tcp::acceptor acceptor_;
|
||||
|
Loading…
x
Reference in New Issue
Block a user