/ test-server / dial-test.go
dial-test.go
1 package main 2 3 import ( 4 "context" 5 "fmt" 6 "log" 7 "os" 8 "time" 9 10 "github.com/libp2p/go-libp2p" 11 "github.com/libp2p/go-libp2p/core/peer" 12 "github.com/multiformats/go-multiaddr" 13 ) 14 15 func main() { 16 if len(os.Args) < 2 { 17 log.Fatal("Usage: dial-test <peer-id>") 18 } 19 peerIDStr := os.Args[1] 20 21 host, err := libp2p.New( 22 libp2p.ListenAddrStrings("/ip4/0.0.0.0/udp/0/quic-v1"), 23 ) 24 if err != nil { 25 log.Fatal(err) 26 } 27 defer host.Close() 28 29 fmt.Printf("Client: %s\n", host.ID()) 30 31 serverPeerID, err := peer.Decode(peerIDStr) 32 if err != nil { 33 log.Fatalf("Invalid peer ID: %v", err) 34 } 35 36 serverAddr, _ := multiaddr.NewMultiaddr("/ip4/127.0.0.1/udp/4001/quic-v1") 37 serverInfo := peer.AddrInfo{ 38 ID: serverPeerID, 39 Addrs: []multiaddr.Multiaddr{serverAddr}, 40 } 41 42 ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) 43 defer cancel() 44 45 fmt.Println("Connecting...") 46 err = host.Connect(ctx, serverInfo) 47 if err != nil { 48 fmt.Printf("Error: %v\n", err) 49 } else { 50 fmt.Println("Connected successfully!") 51 } 52 }