1、代码

2、编译及运行


1、网络编程 TCP 示例 simplehttp.go 代码

  1. package main
  2.  
  3. import (
  4. "net"
  5. "os"
  6. "io"
  7. "bytes"
  8. "fmt"
  9. )
  10.  
  11. func main() {
  12. if len(os.Args) != {
  13. fmt.Fprintf(os.Stderr, "Usage : %s host:port", os.Args[])
  14. os.Exit()
  15. }
  16. service := os.Args[]
  17. conn, err := net.Dial("tcp", service)
  18. checkError(err)
  19.  
  20. _, err = conn.Write([]byte("HEAD / HTTPD/1.0\r\n\r\n"))
  21. checkError(err)
  22.  
  23. result, err := readFully(conn)
  24. checkError(err)
  25.  
  26. fmt.Println(string(result))
  27.  
  28. os.Exit()
  29. }
  30.  
  31. func checkError(err error) {
  32. if err != nil {
  33. fmt.Fprintf(os.Stderr, "Fatal error : %s\n", err.Error())
  34. os.Exit()
  35. }
  36. }
  37.  
  38. func readFully(conn net.Conn) ([]byte, error) {
  39. defer conn.Close()
  40.  
  41. result := bytes.NewBuffer(nil)
  42. var buf []byte
  43. for {
  44. n, err := conn.Read(buf[:])
  45. result.Write(buf[:n])
  46. if err != nil {
  47. if err == io.EOF {
  48. fmt.Println("over...")
  49. break
  50. }
  51. return nil, err
  52. }
  53. }
  54.  
  55. return result.Bytes(), nil
  56. }

2、编译及运行

  2.1)编译

  1. $ go build simplehttp.go
  2. $ ls
  3. simplehttp simplehttp.go

  2.2)运行

  1. $ ./simplehttp www.xin3e.com:
  2. over...
  3. HTTP/1.1 Found
  4. Date: Mon, Jul :: GMT
  5. Server: Apache/2.2. (Ubuntu)
  6. X-Powered-By: PHP/5.3.-1ubuntu3.
  7. Location: web/index.php
  8. Vary: Accept-Encoding
  9. Connection: close
  10. Content-Type: text/html

GO语言练习:网络编程 TCP 示例的更多相关文章

  1. Python中利用原始套接字进行网络编程的示例

    Python中利用原始套接字进行网络编程的示例 在实验中需要自己构造单独的HTTP数据报文,而使用SOCK_STREAM进行发送数据包,需要进行完整的TCP交互. 因此想使用原始套接字进行编程,直接构 ...

  2. 网络编程TCP协议-聊天室

    网络编程TCP协议-聊天室(客户端与服务端的交互); <span style="font-size:18px;">1.客户端发数据到服务端.</span> ...

  3. C#网络编程TCP通信实例程序简单设计

    C#网络编程TCP通信实例程序简单设计 采用自带 TcpClient和TcpListener设计一个Tcp通信的例子 只实现了TCP通信 通信程序截图: 压力测试服务端截图: 俩个客户端链接服务端测试 ...

  4. Socket网络编程(TCP/IP/端口/类)和实例

    Socket网络编程(TCP/IP/端口/类)和实例 原文:C# Socket网络编程精华篇 转自:微冷的雨 我们在讲解Socket编程前,先看几个和Socket编程紧密相关的概念: TCP/IP层次 ...

  5. 网络编程——TCP协议、UDP协议、socket套接字、粘包问题以及解决方法

    网络编程--TCP协议.UDP协议.socket套接字.粘包问题以及解决方法 TCP协议(流式协议) ​ 当应用程序想通过TCP协议实现远程通信时,彼此之间必须先建立双向通信通道,基于该双向通道实现数 ...

  6. Socket网络编程-TCP编程

    Socket网络编程-TCP编程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.socket介绍 1>.TCP/IP协议 2>.跨网络的主机间通讯 在建立通信连接的 ...

  7. 32.网络编程TCP/UDP服务

    网络编程TCP: 服务器端口了解: port:0~65535 web服务:80 邮箱服务:556 0~1024:为服务默认的公认端口,一般我们不能用 套接字:socket socket作用 ip:po ...

  8. 网络编程TCP/IP详解

    网络编程TCP/IP详解 1. 网络通信 中继器:信号放大器 集线器(hub):是中继器的一种形式,区别在于集线器能够提供多端口服务,多口中继器,每个数据包的发送都是以广播的形式进行的,容易阻塞网络. ...

  9. GO语言练习:网络编程 ICMP 示例

    1.代码 2.编译及运行 1.Go语言网络编程:ICMP示例代码 icmptest.go package main import ( "fmt" "net" & ...

随机推荐

  1. 搜索引擎爬虫技术研究(爬虫框架)-WebCollector

    一.简介: https://github.com/CrawlScript/WebCollector/blob/master/README.zh-cn.md 二.使用: <dependency&g ...

  2. android 入门-布局

    android:gravity 针对本view 的位置. android:layout_gravity 本view相对于父布局view的位置. android:layout_alignParentRi ...

  3. android 入门-动画与容器

    set 动画容器 可作为资源id添加R.anim.xxxx   可用于在样式表中添加  http://blog.csdn.net/liuhe688/article/details/6660823 in ...

  4. 笔记本win7共享WIFI

    创建无线网络 (1)netsh wlan set hostednetwork mode=allow ssid=网络名 key=密码 启动承载网络(2)netsh wlan start hostedne ...

  5. jsp,图片显示

    问题:jsp中显示项目中image文件夹中的图片 1,项目中image文件夹中有对应的图片 2,<img ,src="/项目名/image/图片名.jpg">,用其他变 ...

  6. python操作excel表格(xlrd/xlwt)

    最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...

  7. 《DSP using MATLAB》示例Example4.2

  8. CSS3-基于浮动的布局,响应式WEB设计,定位网页上的元素,设计打印页面的css技术

    基于浮动的布局: 1.除非图片设置了宽度,否则始终应该要对浮动的图片设置一个宽度,这样可以让浏览器给其他内容腾出环绕的空间 2.当侧边栏的高度与主内容区的高度不一致的时候,可以用个margin进行调整 ...

  9. js兼容方法:事件添加|事件绑定|事件监听 addEvent

    function addEvent(obj,sEvent,fn){ if(obj.attachEvent){ obj.attachEvent("on"+sEvent,fn); }e ...

  10. json时间格式化问题

    function jsonDateFormat(jsonDate) {//json日期格式转换为正常格式 try { var date = new Date(parseInt(jsonDate.rep ...