赞
踩
使用golang实现tcp server和client ,net包实在是太好用了
TCP Server:
//TCP server
package main
import (
"io"
"log"
"net"
"time"
)
func main() {
listener, err := net.Listen("tcp", "172.17.223.103:8000")
if err != nil {
log.Fatal(err)
}
for {
conn, err := listener.Accept()
if err != nil {
log.Print(err)
continue
}
defer conn.Close()
for {
_, err := io.WriteString(conn, "hello tcp")
if err != nil {
return
}
time.Sleep(1 * time.Second)
}
}
}
以上的代码每隔一秒会发送一个“hello tcp”给客户端,使用Sockettool进行检测,成功!
//TCP Client
package main
import (
"io"
"log"
"net"
"os"
)
func main() {
conn, err := net.Dial("tcp", "172.17.223.103:8000")
if err != nil {
log.Fatal(err)
}
defer conn.Close()
mustCopy(os.Stdout, conn)
}
func mustCopy(dst io.Writer, src io.Reader) {
if _, err := io.Copy(dst, src); err != nil {
log.Fatal(err)
}
}
使用Sockettool从新创建的服务端发送的数据在控制台输出。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。