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