http网络编程

1、Go语言实现TCP通讯

一、tcp服务端

一个TCP服务端能够同时链接不少个客户端,例如世界各地的用户使用本身电脑上的浏览器访问淘宝网。由于Go语言中建立多个goroutine实现并发很是方便和高效,因此咱们能够每创建一次连接就建立一个goroutine去处理。浏览器

TCP服务端程序的处理流程:并发

  1. 监听端口
  2. 接收客户端请求创建连接
  3. 建立goroutine处理连接。
package main

import (
	"fmt"
	"net"
	"os"
)

func errFunc(err error,info string){
	if err !=nil{
		fmt.Println(info,err)
		os.Exit(1) //将当前进程结束
	}
}
func main(){
	listen,err :=net.Listen("tcp","127.0.0.1:8000")
	errFunc(err,"connet net failed")
	defer listen.Close()

	conn,err :=listen.Accept()
	errFunc(err,"Accept err")
	defer conn.Close()

	buf :=make([]byte,4096)
	n,err :=conn.Read(buf)
	if n ==0{
		return
	}
	errFunc(err,"conn Read")
	fmt.Println(string(buf[:n]))

	conn.Write([]byte(string(buf[:n]))) // 发送数据

}

 

http请求包:tcp

请求行:请求方法(空格)请求文件URL(空格)协议版本
请求头:语法格式:key:value
空行:\r\n ---请求
请求包体blog

相关文章
相关标签/搜索