第一个go语言的网络程序,分为服务器端和客户端
来源:http://blog.csdn.net/dux003/article/details/5486898
//服务端
package main
import (
	"net"
	"os"
)
func serve(s net.Conn) {
	var buf [1024]byte
	for {
		n, err := s.Read(&buf)
		if err != nil || n == 0 {
			break;
		}
		s.Write(buf[0:n])
	}
}
func main() {
	l, e := net.Listen("tcp", ":12345")
	if e != nil {
		os.Exit(-1)
	}
	for {
		s, e := l.Accept()
		if e != nil {
			os.Exit(-1)
		}
		go serve(s)
	}
}
//客户端
package main
import (
	"net"
	"os"
)
func main() {
	s, err := net.Dial("tcp", "", "192.168.1.168:12345")
	if err != nil {
		os.Exit(-1)
	}
	for {
		var buf [1024]byte
		n, err := os.Stdin.Read(&buf)
		if err != nil || n == 0 {
			os.Exit(-1)
		}
		s.Write(buf[0:n])
		n, err = s.Read(&buf)
		if err != nil || n == 0 {
			os.Exit(-1)
		}
		os.Stdin.Write(buf[0:n])
	}
}



