Golang网络编程三 tcp

Go语言中,网络编程客户端开发最常用的是Dial方法,但go中同时还专门实现了TCP相关的网络编程API。

TCPConn代表一个TCP网络连接,实现了Conn接口,使用TCPConn编写服务端和客户端代码。

服务端代码:

package main

import (
   "log"
   "net"
)

func main() {
   ip := net.ParseIP("127.0.0.1")
   tcpAddr := &net.TCPAddr{
      IP:ip,
      Port:12345,
      Zone:"tcp",
   }

   listener, e := net.ListenTCP("tcp", tcpAddr)
   if e != nil {
      log.Fatalln("tcp server error", e)
   }
   defer listener.Close()
   bs := make([]byte,512)
   for {
      conn, e := listener.AcceptTCP()
      if e != nil {
         log.Fatalln("tcp server listener error", e)
      }
      conn.Read(bs)
      log.Println("用户输入:",string(bs))
      conn.Write([]byte("hello client"))
   }
}

客户端代码:

package main

import (
   "log"
   "net"
)

func main() {

   ip := net.ParseIP("127.0.0.1")
   tcpAddr := &net.TCPAddr{
      IP:ip,
      Port:12345,
      Zone:"tcp4",
   }

   conn, e := net.DialTCP("tcp", nil, tcpAddr)
   if e != nil {
      log.Fatalln("tcp client conn error")
   }
   defer conn.Close()
   b := make([]byte, 512)
   conn.Write([]byte("hello server"))
   conn.Read(b)
   log.Println(string(b))
}

server打印输出:

用户输入: hello server  

client打印输出:

hello client