use rust_agent::{McpClient, SimpleMcpClient, McpServer, SimpleMcpServer};
use tokio::time::Duration;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("开始 MCP Ping 示例");
let server = SimpleMcpServer::new();
let server_address = "127.0.0.1:6000";
server.start(server_address).await?;
tokio::time::sleep(Duration::from_millis(100)).await;
let mut client = SimpleMcpClient::new(format!("http://{}", server_address));
client.connect(&format!("http://{}", server_address)).await?;
client.set_server_connected(true);
for i in 1..=3 {
let start_time = std::time::Instant::now();
match client.ping().await {
Ok(_) => {
let elapsed = start_time.elapsed();
println!("Ping {} 成功,响应时间: {:?}", i, elapsed);
}
Err(e) => {
println!("Ping {} 失败: {}", i, e);
}
}
tokio::time::sleep(Duration::from_secs(1)).await;
}
server.stop().await?;
println!("MCP Ping 示例完成");
Ok(())
}