TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。
说到网络编程我们先理解一个术语套接字,突破这个术语,我们就向理解 TCP 迈出了一大步。简单比喻一下吧,我们彼此间通过打电话或写信的进行哪种不是面对面的交流,套接字就是我们进行这些交流工具,电话机或是邮箱,仅此而已。
我们今天用 go 语言实现一个 TCP 通讯,go 语言对 TCP 进行封装来方便我们开发 TCP 服务。
package main
import(
"fmt"
"io"
"net"
"time"
)
func main() {
ln, err := net.Listen("tcp",":9000")
if err != nil{
panic(err)
}
defer ln.Close()
for{
conn, err := ln.Accept()
if err != nil{
panic(err)
}
io.WriteString(conn, fmt.Sprint("Hello World\n",time.Now(),"\n"))
conn.Close()
}
}
Listenlisten
conn, err := ln.Accept()
表示接受客户端的请求,返回 socket 套接字连接,向客户端写入数据。
func Listen(net, laddr string) (Listener, error){
}
type Listener interface{
Accept(){ c Conn, err error}
Close()
Addr()
}
defer ln.Close()ln.Accept()
type Conn interface{
Read(b []byte) (n int, err error)
...
}