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

}

}

相关推荐
qetfw9 分钟前
Debian Postfix + Dovecot 基础配置:DNS、Maildir、IMAP 与邮件队列验证
linux·服务器·网络·debian
weixin_4462608510 分钟前
PromptMatic:通过多阶段提示优化提升大模型的指令遵循能力
运维·服务器
Web极客码22 分钟前
GPT-6 Astra 上手体验:如何让编码代理真正提速
服务器·gpt·ai·大模型·astra
yuewell_ai28 分钟前
具身机器人一多服务器就崩-告别轮询上事件驱动
运维·服务器·机器人
道尔柯南38 分钟前
【Linux】进程信号----1
linux·运维·服务器
豆芽脚脚43 分钟前
华为鲲鹏arm服务器部署DeepSeek-V4-Flash-0731-w8a8
运维·服务器·arm开发
云运维笔记1 小时前
免费模拟器ENSP:零成本学网络配置
服务器·网络·智能路由器
Mortalbreeze1 小时前
深入理解 Linux IO 模型(四):多路复用 —— epoll
linux·运维·服务器·网络·tcp/ip
en.en..5 小时前
Linux 孤儿进程与僵尸进程
linux·运维·服务器
T1mzhou11 小时前
ARM64 Linux 6.10内核启动流程7-ioremap和readl writel
linux·服务器·c语言