02.丢掉nc,自己实现echo客户端

本文介绍了如何使用Go语言编写一个TCP echo客户端,详细解析了客户端的设计思路、代码实现、交互过程,以及在操作系统的层面如何查看和理解TCP连接的状态。通过实际操作,展示了TCP三次握手、数据收发和关闭连接的过程。
摘要由CSDN通过智能技术生成

引言

上一篇文章『要疯了,到底什么是网络编程?』,我们用Go实现了自己的echo服务器,并且使用nc伪装echo客户端和我们自己写的echo服务器进行了收发数据交互,并对这一过程进行了详细的讲解。这一节我们将用Go实现自己的echo客户端Let's go

目录

设计思路

  1. 使用Go语言开发我们的echo客户端,最小使用Go语言的原生net网络库,从而直击网络编程的本质。
  2. 标准输入读取数据,发往服务器,读取服务器返回的数据,打印到标准输出
  3. 注意读写数据细节问题。

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)
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值