发送:
package main
import (
"fmt"
"net"
)
func main() {
tcpAddr, err := net.ResolveTCPAddr("tcp4", "106.14.38.109:80")
if err != nil {
}
conn, err := net.DialTCP("tcp", nil, tcpAddr)
if err != nil {
}
conn.Write([]byte("hello world\r\n"))
fmt.Printf("#")
}
接收:
package main
import (
"bufio"
"fmt"
"io"
"log"
"net"
)
func handleConnection(conn net.Conn) {
br := bufio.NewReader(conn)
for {
data, err := br.ReadString('\n')
if err == io.EOF {
break
}
fmt.Printf("%s", data)
fmt.Fprintf(conn, "OK\n")
}
conn.Close()
}
func read2(conn net.Conn) {
r := bufio.NewReader(conn)
chunks := make([]byte, 1024, 1024)
buf := make([]byte, 1024)
for {
n, err := r.Read(buf)
if err != nil && err != io.EOF {
panic(err)
}
if 0 == n {
break
}
chunks = append(chunks, buf[:n]...)
fmt.Println(string(buf[:n]))
}
conn.Close()
}
func main() {
ln, err := net.Listen("tcp4", ":80")
if err != nil {
panic(err)
}
for {
conn, err := ln.Accept()
if err != nil {
log.Fatal("get client connection error: ", err)
}
go read2(conn)
}
}