/ test-server / main.go
main.go
1 package main 2 3 import ( 4 "fmt" 5 "log" 6 "os" 7 "os/signal" 8 "syscall" 9 10 "github.com/libp2p/go-libp2p" 11 "github.com/libp2p/go-libp2p/core/network" 12 ) 13 14 func main() { 15 // Create a libp2p host with QUIC transport on port 4001 16 host, err := libp2p.New( 17 libp2p.ListenAddrStrings( 18 "/ip4/0.0.0.0/udp/4001/quic-v1", 19 ), 20 ) 21 if err != nil { 22 log.Fatalf("Failed to create host: %v", err) 23 } 24 defer host.Close() 25 26 // Print the host's addresses 27 fmt.Println("libp2p QUIC test server running") 28 fmt.Printf("Peer ID: %s\n", host.ID()) 29 for _, addr := range host.Addrs() { 30 fmt.Printf("Listening on: %s/p2p/%s\n", addr, host.ID()) 31 } 32 33 // Set a connection handler to log incoming connections 34 host.Network().Notify(&network.NotifyBundle{ 35 ConnectedF: func(n network.Network, conn network.Conn) { 36 fmt.Printf("New connection from: %s\n", conn.RemotePeer()) 37 fmt.Printf(" Remote addr: %s\n", conn.RemoteMultiaddr()) 38 fmt.Printf(" Local addr: %s\n", conn.LocalMultiaddr()) 39 }, 40 DisconnectedF: func(n network.Network, conn network.Conn) { 41 fmt.Printf("Disconnected: %s\n", conn.RemotePeer()) 42 }, 43 }) 44 45 // Also try to add a raw UDP listener for debugging 46 fmt.Println("\nWaiting for connections on port 4001...") 47 48 // Wait for interrupt 49 c := make(chan os.Signal, 1) 50 signal.Notify(c, os.Interrupt, syscall.SIGTERM) 51 <-c 52 fmt.Println("\nShutting down...") 53 }