go实现TCP服务器

package main

import (

"fmt"

"net"

)

func main() {

// 监听TCP端口

listener, err := net.Listen("tcp", "localhost:50000")

if err != nil {

fmt.Println("Error listening:", err.Error())

return

}

defer listener.Close()

fmt.Println("Listening on localhost:50000...")

// 无限循环等待并处理连接

for {

conn, err := listener.Accept()

if err != nil {

fmt.Println("Error accepting:", err.Error())

continue

}

go handleConnection(conn)

}

}

// 处理单个连接的函数

func handleConnection(conn net.Conn) {

defer conn.Close()

// 读取客户端发送的数据

buffer := make(\[\]byte, 512)

n, err := conn.Read(buffer)

if err != nil {

fmt.Println("Error reading:", err.Error())

return

}

fmt.Println("Received data:", string(buffer:n))

// 回复客户端

_, err = conn.Write(\[\]byte("Hello, client!\n"))

if err != nil {

fmt.Println("Error writing:", err.Error())

return

}

}

相关推荐
mixboot1 小时前
Linux 进程工作目录查看利器:pwdx 命令详解
linux·运维·服务器
鹏北海-RemHusband1 小时前
Go 语言进阶笔记 — 面向 JS/TS 前端开发者
笔记·golang
之歆2 小时前
Day16_JavaScript 轮播图与事件工程实战(下篇)
服务器·开发语言·前端·javascript·网络·性能优化
云登指纹浏览器4 小时前
静态IP和动态IP哪个好:跨境电商代理选型指南
网络·网络协议·tcp/ip
zhz52144 小时前
服务器等保加固实施报告
运维·服务器·信创·国密·等保
s_w.h5 小时前
【 linux 】文件系统
linux·运维·服务器·算法·bash
早睡身体真不戳6 小时前
【无标题】
java·服务器·windows
小快说网安7 小时前
云服务器抗 DDoS 只靠基础防护够吗?
运维·服务器·ddos
biter down7 小时前
15:YAML配置文件
服务器·数据库·python
怎么没有名字注册了啊7 小时前
fedora 换源教程
linux·运维·服务器