北京列举网 > 教育培训 > 电脑/网络 > 兄弟连区块链教程网络通信TCP交互通信
北京
[切换城市]

兄弟连区块链教程网络通信TCP交互通信

更新时间:2018-09-29 15:31:33 浏览次数:64次
区域: 北京 > 昌平 > 回龙观
类别:软件工程师培训
地址:文华西路育荣教育园区
  兄弟连区块链入门教程网络通信3:TCP交互通信“区块链+时代无疑会是下一个风口,然而现在的区块链行业专业型人才正在遭遇瓶颈”兄弟连教育区块链培训学院院长尹成表示,“希望能通过兄弟连教育区块链学院为社会为企业培养并输送更多优质的区块链高精尖型技术。
服务端实现
import (
  "fmt"
  "net"
  "os"
  "strings"
)
func CheckErrorS(err error) {
  if err != nil {
    fmt.Println("网络错误" err.Error())
    os.Exit(1)
  }
}
func Processinfo(conn ne***nn) {
  buffer := make([]byte 1024) //开创缓冲区
  defer conn.Close()       //关闭连接

  for {
    n err := conn.Read(buffer) //读取数据
    CheckErrorS(err)

    if n != 0 {
        //拿到客户端地址
        remoteAddr := conn.RemoteAddr()
        msg := string(buffer[:n])
        fmt.Println("收到消息"msg "来自" remoteAddr)

        if st***ntains(msg"钱") {
          conn.Write([]byte("fuckoff"))
          break
        }
        conn.Write([]byte("已阅:"+msg))
    }
  }

}
func main() {
  //建立TCP服务器
  listener err := net.Listen("tcp" "127.0.0.1:8898")
  CheckErrorS(err)
  defer listener.Close() //关闭网络

  fmt.Println("服务器正在等待")

  for {
    conn err := listener.Accept() //新的客户端连接
    CheckErrorS(err)

    //处理每一个客户端
    go Processinfo(conn)
  }

}
客户端实现
import (
  "fmt"
  "net"
  "bufio"
  "os"
)
func CheckErrorC(err error) {
  if err != nil {
    fmt.Println("网络错误" err.Error())
    os.Exit(1)
  }
}
func MessageSend(conn ne***nn) {
  var msg string
  reader := bufio.NewReader(os.Stdin) //读取键盘输入

  for {
    lineBytes _ _ := reader.ReadLine() //读取一行
    msg = string(lineBytes)         //键盘输入转化为字符串

    if msg == "exit" {
        conn.Close()
        fmt.Println("客户端关闭")
        break
    }

    _ err := conn.Write([]byte(msg)) //输入写入字符串
    if err != nil {
        conn.Close()
        fmt.Println("客户端关闭")
        break
    }

  }
}
func main() {
  conn err := net.Dial("tcp" "127.0.0.1:8898") //建立TCP服务器
  CheckErrorC(err)                     //检查错误
  defer conn.Close()

  //发送消息中有阻塞读取标准输入的代码
  //为了避免阻塞住消息的接收,所以把它独立的协程中
  go MessageSend(conn)

  buffer := make([]byte 1024)
  for {
    n err := conn.Read(buffer)
    CheckErrorC(err)

    msg := string(buffer[:n])
    fmt.Println("收到服务器消息" msg)

    if msg=="fuckoff"{
        break
    }

  }

  fmt.Println("连接已断开")
}
本文出自兄弟连区块链教程:更多区块链视频教程/源码/课件/学习资料-企鹅QUN:591-229-276
北京电脑/网络相关信息
4月23日
办公软件培训
平谷-平谷城区
4月19日
办公软件培训
平谷-平谷城区
4月11日
办公软件培训
平谷-平谷城区
4月9日
办公软件培训
平谷-平谷城区
4月7日
4月1日
注册时间:2018年06月14日
UID:496465
---------- 认证信息 ----------
手机已认证
查看用户主页