Network socket
Network socket或socket是一台或多台服务器中不同应用程序之间相互通信的接口.socket可以用于不同的网络协议, 如HTTP, FTP等. 切不同的sockets可以同时存在.
Network sockets类型如下:
- Datagram sockets(SOCK_DGRAM), 即无链接的sockets, 使用UDP协议(User Datagram Protocol).
- Stream sockets(SOCK_STREAM), 即面向链接的sockets, 使用TCP协议(Transmission Control Protocol), SCTP协议(Stream Control Transmission Protocol), 或者DCCP协议(Datagram Congestion Control Protocol).
- Raw sockets(or raw IP sockets)常见于路由和其他网络设备. 应用程序中不常用.
socket通信
主机间的通信主要有TCP和UDP.
TCP Sockets
![b2cac78e1206fbe0aedf448fbcf5c5c0.png](https://i-blog.csdnimg.cn/blog_migrate/be692f7c5f0d71de203ba03d0b1fb4d2.jpeg)
客户端代码
// init
tcpAddr, err := net.ResolveTCPAddr(resolver, serverAddr)
if err != nil {
// handle error
}
conn, err := net.DialTCP(network, nil, tc