package main
import (
"fmt"
"net"
"os"
"unsafe"
)
func StringToBytes(s string) []byte {
return *(*[]byte)(unsafe.Pointer(
&struct {
string
Cap int
}{s, len(s)},
))
}
func readHandler(c net.Conn) {
for {
var bufs []byte = make([]byte, 1024)
n, _ := c.Read(bufs)
fmt.Println(n, string(bufs[:n]))
//line, _, _ := bufio.NewReader(c).ReadLine()
c.Write(bufs[:n])
}
}
func main() {
l, err := net.Listen("tcp", "0.0.0.0:9001")
if err != nil {
os.Exit(1)
}
defer l.Close()
for {
c, err := l.Accept()
if err != nil {
os.Exit(1)
}
go readHandler(c)
}
}
package main
import (
"fmt"
"net"
"os"
"unsafe"
)
func BytesToString(b []byte) string {
return *(*string)(unsafe.Pointer(&b))
}
func receive(c net.Conn) {
var b []byte = make([]byte, 1024)
for {
n, _ := c.Read(b)
if n > 0 {
fmt.Println("接收的消息数 ", n, string(b[:n]))
}
}
}
func main() {
conn, err := net.Dial("tcp", "127.0.0.1:9001")
if err != nil {
os.Exit(1)
}
defer conn.Close()
go receive(conn)
for {
var msg []byte
fmt.Println("请输入消息")
fmt.Scanln(&msg)
conn.Write(msg)
//conn.Read(msg)
//fmt.Println(string(msg))
//line, prefix, err := bufio.NewReader(conn).ReadLine()
//fmt.Println(BytesToString(msg))
}
}