mcp_ping_example/
mcp_ping_example.rs

1// MCP Ping 接口使用示例
2use 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    // 创建 MCP 服务器
10    let server = SimpleMcpServer::new();
11    
12    // 启动服务器
13    let server_address = "127.0.0.1:6000";
14    server.start(server_address).await?;
15    
16    // 等待服务器启动
17    tokio::time::sleep(Duration::from_millis(100)).await;
18    
19    // 创建 MCP 客户端
20    let mut client = SimpleMcpClient::new(format!("http://{}", server_address));
21    
22    // 连接到服务器 - 修复URL格式
23    client.connect(&format!("http://{}", server_address)).await?;
24    client.set_server_connected(true);
25    
26    // 执行多次 ping 测试
27    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        // 等待 1 秒再进行下一次 ping
41        tokio::time::sleep(Duration::from_secs(1)).await;
42    }
43    
44    // 停止服务器
45    server.stop().await?;
46    
47    println!("MCP Ping 示例完成");
48    
49    Ok(())
50}