引言
上一篇文章『要疯了,到底什么是网络编程?』,我们用
Go
实现了自己的echo服务器
,并且使用nc
伪装echo客户端
和我们自己写的echo服务器
进行了收发数据交互,并对这一过程进行了详细的讲解。这一节我们将用Go
实现自己的echo客户端
,Let's go
。
目录
设计思路
- 使用Go语言开发我们的
echo客户端
,最小使用Go语言的原生net
网络库,从而直击网络编程
的本质。 - 从标准输入读取数据,发往服务器,读取服务器返回的数据,打印到标准输出。
- 注意读写数据细节问题。
echo客户端代码
/**
* File: echoClient.go
* Author: 蛇叔
* 公众号: 蛇叔编程心法
*/
package main
import (
"bufio"
"fmt"
"net"
"os"
"syscall"
)
const (
PORT = 8888
ADDR = "127.0.0.1"
SIZE = 100
)
func main() {
// 1. 建立socket
socketFd, err := syscall.Socket(syscall.AF_INET, syscall.SOCK_STREAM, 0)
if err != nil || socketFd < 0 {
fmt.Println("socket create err: ", err)
os.Exit(-1)
}
ip4 := net.ParseIP(ADDR).To4()
if ip4 == nil {
fmt.Println("net.ParseIP err")
os.Exit(-1)
}