golang tcp server client
来源:互联网 发布:百分百软件下载 编辑:程序博客网 时间:2024/05/01 09:39
实例代码如下:
server
import ( "fmt" "net" "log")func main() { addr := "0.0.0.0:8080" tcpAddr, err := net.ResolveTCPAddr("tcp",addr) if err != nil { log.Fatalf("net.ResovleTCPAddr fail:%s", addr) } listener, err := net.ListenTCP("tcp", tcpAddr) if err != nil { log.Fatalf("listen %s fail: %s", addr, err) } else { log.Println("rpc listening", addr) } for { conn, err := listener.Accept() if err != nil { log.Println("listener.Accept error:", err) continue } go handleConnection(conn) }}func handleConnection(conn net.Conn) { defer conn.Close() var buffer []byte = []byte("You are welcome. I'm server.") n, err := conn.Write(buffer) if err != nil { fmt.Println("Write error:", err) } fmt.Println("send:", n) fmt.Println("connetion end")}
client
package mainimport ( "fmt" "net" "os")func main() { conn, err := net.Dial("tcp", "127.0.0.1:8080") if err != nil { fmt.Println("dial failed:", err) os.Exit(1) } defer conn.Close() buffer := make([]byte, 512) n, err2 := conn.Read(buffer) if err2 != nil { fmt.Println("Read failed:", err2) return } fmt.Println("count:", n, "msg:", string(buffer))}
Read函数最多读取len(buffer)个字节到buffer中。
测试
server output:
2017/10/05 00:12:18 rpc listening 0.0.0.0:8080
send: 28
connetion end
client output:
count: 28 msg: You are welcome. I’m server.
阅读全文
0 0
- golang tcp server client
- java Tcp Client server
- linux tcp server client
- TCP:Server-Client程序
- ECHO TCP Server Client
- gevent tcp server&client
- TCP Server/Client, Select
- TCP Socket Server Client
- tcp client and server
- golang简单的Server Client模型
- UNP: Chatper5-TCP Server Client
- 简单 TCP UDP server client
- Tcp Client与Server 基本原理
- 5-TCP Client&Server Example
- Qt中Tcp:Server、Client
- WINSOCK2 TCP client 和server
- TCP Server《——》TCP Client
- [Golang] 从零开始写Socket Server(1): Socket-Client框架
- linux基础
- 基于Python单向循环链表实现尾部、任意位置添加,删除
- 把python基本功搞扎实(7)
- JAVA面试题整理之—基础篇第二部
- 图像识别——象棋识别相关论文资料算法暂存
- golang tcp server client
- Ubuntu14.04 下安装OpenCV源码库
- @JoinColumn 详解
- ubuntu16.04编译android2.3源码
- 深入理解Java继承
- 数组中只出现一次的数字
- 图像识别与处理——象棋识别相关论文
- 如何在 Java 中正确使用 wait, notify 和 notifyAll – 以生产者消费者模型为例
- 系统权限控制设计001---RBAC用户角色权限设计方案