我正在尝试在不使用任何库的情况下实现我自己的 P2P 网络。我想构建一个 TCP 客户端,它可以从其他节点发送和接收消息。因此所有节点都应该能够通过 tcp/ip 发送和接收消息。
我当前的问题是,当我启动两个客户端时:一个节点能够接收和发送消息,但另一个节点仅发送消息而无法接收消息。
我认为我需要以某种方式实现一个通道,但我对 Go 非常陌生,不知道如何实现它。有什么建议么?
代码如下:
主要.go:
package main
func main() {
address := "127.0.0.1:8081" // IP of the other node; hardcoded for now
go startServer()
startClient(address)
}
Run Code Online (Sandbox Code Playgroud)
助手.go:
package main
import (
"bufio"
"fmt"
"net"
"os"
)
func startClient(address string) {
//connect to this socket
connClient, _ := net.Dial("tcp", address)
for {
//read in input from stdin
reader := bufio.NewReader(os.Stdin)
fmt.Print("Text to send: ")
text, _ := reader.ReadString('\n')
//send to socket
fmt.Fprint(connClient, text+"\n") …Run Code Online (Sandbox Code Playgroud)