小编aue*_*nal的帖子

使用 Go 的接收和发送 TCP 客户端

我正在尝试在不使用任何库的情况下实现我自己的 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)

p2p tcp go

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

go ×1

p2p ×1

tcp ×1