go实现tcp客户端

package main

import (

"fmt"

"net"

"os"

"time"

)

func main() {

if len(os.Args) != 2 {

fmt.Fprintf(os.Stderr, "Usage: %s host:port\n", os.Args[0])

os.Exit(1)

}

service := os.Args[1]

conn, err := net.Dial("tcp", service)

if err != nil {

fmt.Fprintf(os.Stderr, "Error dialing: %s\n", err)

os.Exit(1)

}

defer conn.Close()

go func() {

t := time.NewTicker(time.Second)

defer t.Stop()

for {

<-t.C

conn.Write([]byte("Hello, server!\n"))

}

}()

buf := make([]byte, 512)

for {

n, err := conn.Read(buf)

if err != nil {

fmt.Fprintf(os.Stderr, "Error reading: %s\n", err)

os.Exit(1)

}

fmt.Print(string(buf[:n]))

}

}

相关推荐
我命由我1234542 分钟前
Kotlin 开发 - lateinit 关键字
android·java·开发语言·kotlin·android studio·android-studio·android runtime
Halo_tjn1 小时前
Java Set集合相关知识点
java·开发语言·算法
我不是8神1 小时前
面试题:runtime.MAXPROCESS怎么处理?
golang
许彰午1 小时前
我手写了一个 Java 内存数据库(二):B+ 树的插入与分裂
java·开发语言·面试
必胜刻1 小时前
全面解析 Token:从入门到 JWT 实战
golang·状态模式·web·前后端交互
大飞记Python1 小时前
【2026更新】Python基础学习指南(AI版)——04数据类型
开发语言·人工智能·python
Alice-YUE2 小时前
【js高频八股】防抖与节流
开发语言·前端·javascript·笔记·学习·ecmascript
云泽8082 小时前
C++11 核心特性全解:列表初始化、右值引用与移动语义实战
开发语言·c++
froginwe112 小时前
DOM 加载函数
开发语言
Hello eveybody3 小时前
介绍一下背包DP(Python)
开发语言·python·动态规划·dp·背包dp