doupeng6890 2017-07-03 01:34
浏览 59
已采纳

Golang中带有TCP / IP套接字的通道不起作用

I just started writting a Golang client for a server that I've made in C with TCP/IP sockets, then I figured out that my channel wasn't working.

Any ideas why ?

func reader(r io.Reader, channel chan<- []byte) {
  buf := make([]byte, 2048)
  for {
    n, err := r.Read(buf[:])
    if err != nil {
        return
    }
    channel <- buf[0:n]
  }
}
func client(e *gowd.Element) {
 f, err := os.Create("/tmp/dat2")
 if err != nil {
    log.Fatal()
 }
 read := make(chan []byte)
 c, err := net.Dial("tcp", "127.0.0.1:4242")
 if err != nil {
    log.Fatal(err)
 }
 go reader(c, read)
 for {
    buf := <-read
    n := strings.Index(string(buf), "
")
    if n == -1 {
        continue
 }
 msg := string(buf[0:n])
 if msg == "WELCOME" {
    fmt.Fprint(c, "GRAPHIC
")
 }
 f.WriteString(msg + "
")
}

Testing my server with netcat results in the following output : http://pasted.co/a37b2954

But i only have : http://pasted.co/f13d56b4

I'm new to chan in Golang so maybe I'm wrong (I probably am)

  • 写回答

1条回答

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥30 如何在运行时,输入训练集目录下的所有文件?(语言-python)
      • ¥15 类的继承,综合输出学生信息并析构
      • ¥15 js 使用contenteditable属性模拟富文本框的时候如何定位光标到指定位置
      • ¥15 怎么激活组态王的Touchvew菜单和Touchmak 菜单
      • ¥15 Meta分析中,如何在只有样本量的情况下用cma处理效应量r值。
      • ¥15 关于#OpenCV#的问题,如何解决?(语言-qt|开发工具-visual studio)
      • ¥15 centos环境中引入jsoncpp后,编译工程报错,找不到基本库。
      • ¥15 vue3为什么请求在这边获取不到数据呢(关键词-select)
      • ¥20 Multisim仿真设计三路智力抢答装置
      • ¥15 用UML制作简单的语音计算机