Chinaunix首页 | 论坛 | 博客
  • 博客访问: 309006
  • 博文数量: 214
  • 博客积分: 4258
  • 博客等级: 上校
  • 技术积分: 2021
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-02 09:16
个人简介

http://blog.csdn.net/ly21st http://ly21st.blog.chinaunix.net

文章分类

全部博文(214)

文章存档

2018年(16)

2015年(1)

2014年(2)

2012年(22)

2011年(173)

分类: C/C++

2018-01-29 15:46:52

服务器与客户端通信简单例子
服务端代码

点击(此处)折叠或打开

  1. // net_serv project main.go
  2. package main

  3. import (
  4.     //    "fmt"
  5.     "io"
  6.     "log"
  7.     "net"
  8. )

  9. func ExampleListener() {
  10.     // Listen on TCP port 2000 on all available unicast and
  11.     // anycast IP addresses of the local system.
  12.     l, err := net.Listen("tcp", ":2000")
  13.     if err != nil {
  14.         log.Fatal(err)
  15.     }
  16.     defer l.Close()
  17.     for {
  18.         // Wait for a connection.
  19.         conn, err := l.Accept()
  20.         if err != nil {
  21.             log.Fatal(err)
  22.         }
  23.         // Handle the connection in a new goroutine.
  24.         // The loop then returns to accepting, so that
  25.         // multiple connections may be served concurrently.
  26.         go func(c net.Conn) {
  27.             // Echo all incoming data.
  28.             io.Copy(c, c)
  29.             // Shut down the connection.
  30.             c.Close()
  31.         }(conn)
  32.     }
  33. }

  34. func main() {
  35.     ExampleListener()
  36. }
客户端代码

点击(此处)折叠或打开

  1. // net_cli project main.go
  2. package main

  3. import (
  4.     "bufio"
  5.     "fmt"
  6.     //    "io"
  7.     //    "log"
  8.     "net"
  9. )

  10. func client() {
  11.     conn, err := net.Dial("tcp", "127.0.0.1:2000")
  12.     if err != nil {
  13.         // handle error
  14.     }
  15.     fmt.Fprintf(conn, "GET / HTTP/1.0\r\n\r\n")
  16.     status, err := bufio.NewReader(conn).ReadString('\n')
  17.     fmt.Printf(status)
  18. }

  19. func main() {
  20.     client()
  21. }

运行服务器:

运行客户端


阅读(304) | 评论(0) | 转发(0) |
0

上一篇:log操作

下一篇:os操作

给主人留下些什么吧!~~