package main
import (
“fmt”
“net”
)
func process(conn net.Conn) {
//这里我们循环的接收客户端发送的数据
defer conn.Close()//关闭conn
for{
//创建一个新的切片
buf := make([]byte,1024)
//conn.Read(buf)
//1.等待客户端通过conn发送信息
//2.如果客户端没有wrtie[发送],那么协程就阻塞在这里。
//fmt.Printf(“服务器在等待客户端%s 发送信息\n”,conn.RemoteAdder().String())
fmt.Println(“服务器在等待客户端%s 发送信息”+conn.RemoteAddr().String())
n,err:=conn.Read(buf)//从conn读取
if err !=nil{//io.EOF
fmt.Printf(“服务器的Read err”,err)
return //!!!
}
//3.显示客户端发送的内容到服务器的终端
fmt.Print(string(buf[:n]))
}
}
/*
tcp socket编程的快速入门
服务端的处理流程
1)监听端口
2)接收客户端的tcp链接,建立客户端和服务器端的链接
3)创建goroutine,处理该链接的请求(通常客户端会通过链接发送请求包)
客户端的处理流程
1)建立于服务端的链接
2)发送请求数据,接收服务器端返回的结果数据
3)关闭链接
*/
//做网络socket开发时,net宝行有我们需要所有的方法和函数
func main(){
fmt.Println(“服务器开始监听…”)
//net.Listen(“tcp”,“0.0.0.0:8888”)
//1.tcp表示使用网络协议是tcp<