服务端
package main
import (
"fmt"
"net"
"time"
)
func main() {
address := net.TCPAddr{
IP: net.ParseIP("127.0.0.1"),
Port: 8000,
}
listener, err := net.ListenTCP("tcp", &address)
if err != nil{
fmt.Println("ERR: ", err)
return
}
for {
conn, err := listener.AcceptTCP()
if err != nil{
fmt.Println("ERR: ", err)
continue
}
fmt.Println("Remote address: ", conn.RemoteAddr)
go echo(conn)
}
}
func echo(conn net.Conn){
tick := time.NewTicker(time.Second*5)
for now := range tick.C{
var buff [512]byte
num, err := conn.Read(buff[0:])
if err != nil{
fmt.Println("ERR: ",err)
continue
}else{
fmt.Println("Receive: ", string(buff[:num]))
}
n, err := conn.Write([]byte(now.String()))
if err != nil{
fmt.Println("ERR: ", err)
conn.Close()
return
}
fmt.Printf("Send %d bytes to %s\n", n, conn.RemoteAddr())
}
}
客户端
package main
import (
"fmt"
"net"
)
func main(){
address := net.TCPAddr{
IP: net.ParseIP("127.0.0.1"),
Port: 8000,
}
conn, err := net.DialTCP("tcp", nil, &address)
if err != nil{
fmt.Println("ERR: ", err)
return
}
for {
var buff [512]byte
conn.Write([]byte("Hello world"))
n, err := conn.Read(buff[0:])
if err != nil{
fmt.Println("ERR: ", err)
conn.Close()
break
}
fmt.Printf("Receive %d bytes data : %s from %s \n",n , string(buff[:n]), conn.RemoteAddr())
}
}
转载请注明原文地址:https://blackberry.8miu.com/read-42923.html