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

}

}

相关推荐
福大大架构师每日一题1 天前
2026年1月TIOBE编程语言排行榜,Go语言排名第16,Rust语言排名13。C# 当选 2025 年度编程语言。
golang·rust·c#
又是忙碌的一天1 天前
SpringMVC响应
java·服务器·数据库
FOREVER-Q1 天前
Windows 下通过 SSH 替代 Gitee OAuth Token 推送配置指南
运维·服务器
ba_pi1 天前
每天写点什么2026-01-09-linux基础
linux·运维·服务器
少云清1 天前
【性能测试】3_性能测试基础 _指标
运维·服务器·数据库·性能测试·性能测试指标
行走的bug...1 天前
cmake总结
linux·运维·服务器
凌波粒1 天前
Linux 面试题篇
linux·运维·服务器
虾..1 天前
Linux 线程控制
linux·运维·服务器
镜中人★1 天前
408操作系统考纲知识点
linux·运维·服务器
拔剑纵狂歌1 天前
helm-cli安装资源时序报错问题问题
后端·docker·云原生·容器·golang·kubernetes·腾讯云