Go socket
Go socket
什么是socket
Socket起源于Unix,而Unix基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关
闭close”模式来操作。Socket就是该模式的一个实现,网络的Socket数据传输是一种特殊的I/O,Socket也
是一种文件描述符。Socket也具有一个类似于打开文件的函数调用:Socket(),该函数返回一个整型的
Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。
常用的Socket类型有两种:流式Socket( SOCK_STREAM) 和数据报式Socket( SOCK_DGRAM) 。流
式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,
对应于无连接的UDP服务应用。
TCP 连接
服务端
package main
import (
"fmt"
"io/ioutil"
"net"
)
func main() {
service := ":3000"
tcpAddr, _ := net.ResolveTCPAddr("tcp4", service)
listen, _ := net.ListenTCP("tcp", tcpAddr)
for {
conn, err := listen.Accept()
if err != nil {
continue
}
result, _ := ioutil.ReadAll(conn)
fmt.Println(string(result))
conn.Close()
}
}客户端
多协程服务端
UDP连接
服务端
客户端
socket ssl 加密
[生成自签证书](https://www.cnblogs.com/lihuang/articles/4205540.html\
服务端
客户端
Last updated
Was this helpful?