Http原理实践 Go实现
来源:互联网 发布:ubuntu怎么重新分区 编辑:程序博客网 时间:2024/06/07 00:09
package mainimport ( "bytes" "fmt" "io" "net" "os")func main() { if len(os.Args) != 2 { fmt.Fprintf(os.Stderr, "Usage : %s host:post", os.Args[0]) os.Exit(1) } service := os.Args[1] conn, err := net.Dial("tcp", service) checkError(err) _, err = conn.Write([]byte("HEAD / HTTP/1.0\r\n\r\n")) checkError(err) result, err := readFully(conn) checkError(err) fmt.Println(string(result)) os.Exit(0)}func checkError(err error) { if err != nil { fmt.Fprintf(os.Stderr, "Fatal error : %s ", err.Error()) os.Exit(1) }}func readFully(conn net.Conn) ([]byte, error) { defer conn.Close() result := bytes.NewBuffer(nil) var buf [512]byte for { n, err := conn.Read(buf[0:]) result.Write(buf[0:n]) if err != nil { if err == io.EOF { break } return nil, err } } return result.Bytes(), nil}
构建代码
go build simplehttp.go./simplehttp ip:port
返回值:
HTTP/1.1 200 OK Server: nginx/1.2.1 Date: Sat, 19 Mar 2016 07:17:26 GMT Content-Type: text/html; charset=utf-8 Connection: close X-Frame-Options: SAMEORIGIN
0 0
- Http原理实践 Go实现
- Go实践
- Go语言 如果实现http重连?
- go语言实现http服务端与客户端
- Go语言的实时GC原理和实践
- Nginx实现HTTP/2——原理、实践与数据分析
- http工作原理实现
- Go-HTTP
- HTTP实现流媒体的原理
- 使用Go语言实现http服务端指定路径的文件.
- go http transfer.go学习
- Go实践-文件系统操作
- Go并发编程实践
- Go并发编程实践
- Go并发编程实践
- Go最佳实践
- 编程实现可靠数据传输原理Go-Back-N
- BPEL入门实践理论(实现原理)
- 接口继承接口的意义
- 面向指针编程
- Activity的生命周期和启动模式
- 生活小计一
- 【设计模式】之装饰器模式-PHP
- Http原理实践 Go实现
- 常用的七种数据挖掘的方法
- C++中restrict修饰符作用
- ArrayList的遍历 四种方法
- java数据结构排序之冒泡实现
- Hibernate关系映射
- 《首看vb.net》
- 通过数据结构达到保存多个数据的目的
- MFC获取文件大小的方法