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

}

}

相关推荐
Ai拆代码的曹操10 分钟前
TCP 握手丢包分析:客户端连接超时、服务端无日志的场景排查实践
网络·网络协议·tcp/ip
蓝狐社15 分钟前
一张被低估的芯片版图——中兴通讯
运维·服务器
网络小白不怕黑22 分钟前
13.SSH服务相关配置
服务器·网络·ssh
Jtti27 分钟前
站群服务器多IP能不能分散DDoS攻击流量?
服务器·tcp/ip·ddos
素心如月桠1 小时前
windows系统使用https://lnmp.org/的LNMP一键安装包,来打开我的服务器Linux
linux·运维·服务器
运维大师1 小时前
【Linux运维极简教程】03-用户与用户组管理
linux·运维·服务器
布朗克1681 小时前
Go 入门到精通-15-错误处理
开发语言·python·golang·错误处理
云计算-Security2 小时前
同(异)主机 Linux NAT 最佳实践
linux·服务器·网络
北冥you鱼3 小时前
Go-Ethereum (Geth) 最佳实践:从部署到生产环境优化
开发语言·后端·golang
星释11 小时前
鸿蒙智能体开发实战:23.常见问题
服务器·华为·ai·harmonyos·鸿蒙·智能体