简单的socket交互,文件传输上传案例
//模拟客户端
func main() {
conn, err := net.Dial("tcp", "127.0.0.1:88")
defer conn.Close()
if err != nil {
fmt.Println("连接失败")
return
}
f,_ := os.OpenFile("a.mp3",os.O_CREATE|os.O_RDONLY|os.O_APPEND,0777)
stream := make([]byte, 1<<10)
defer f.Close()
filesize :=0
for {
n,err := f.Read(stream)
if err != nil{
break
}
filesize += n
go conn.Write(stream[:n])
}
n, err := conn.Read(stream)
if err != nil {
fmt.Println("接收信息失败", err)
}
if string(stream[:n]) == "complete" {
fmt.Println("上传完成")
}
}
//模拟server端
func main() {
listen, err := net.Listen("tcp", ":88")
if err != nil {
fmt.Println("启动服务出错了", err)
}
defer listen.Close()
// 保持监听
for {
conn, err := listen.Accept()
if err != nil {
fmt.Println(