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

相關文章
相關標籤/搜索