mcp_ping_example/
mcp_ping_example.rs1use rust_agent::{McpClient, SimpleMcpClient, McpServer, SimpleMcpServer};
3use tokio::time::Duration;
4
5#[tokio::main]
6async fn main() -> Result<(), Box<dyn std::error::Error>> {
7 println!("开始 MCP Ping 示例");
8
9 let server = SimpleMcpServer::new();
11
12 let server_address = "127.0.0.1:6000";
14 server.start(server_address).await?;
15
16 tokio::time::sleep(Duration::from_millis(100)).await;
18
19 let mut client = SimpleMcpClient::new(format!("http://{}", server_address));
21
22 client.connect(&format!("http://{}", server_address)).await?;
24 client.set_server_connected(true);
25
26 for i in 1..=3 {
28 let start_time = std::time::Instant::now();
29
30 match client.ping().await {
31 Ok(_) => {
32 let elapsed = start_time.elapsed();
33 println!("Ping {} 成功,响应时间: {:?}", i, elapsed);
34 }
35 Err(e) => {
36 println!("Ping {} 失败: {}", i, e);
37 }
38 }
39
40 tokio::time::sleep(Duration::from_secs(1)).await;
42 }
43
44 server.stop().await?;
46
47 println!("MCP Ping 示例完成");
48
49 Ok(())
50}