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 小时前
Linux进程信号:从基础概念到内核底层原理
linux·运维·服务器·信号处理
广州灵眸科技有限公司2 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) 开发(编译)方式说明
linux·服务器·单片机·嵌入式硬件·电脑
土星云SaturnCloud2 小时前
土星云AI边缘计算SE110S系列模型部署实战-YOLOv5
服务器·人工智能·yolo·docker·边缘计算
艾iYYY3 小时前
string 类的模拟实现
android·服务器·c语言·c++·算法
cjp5603 小时前
003.LINQ在WEB API中的应用
服务器·linq
周小码3 小时前
10分钟搭建私有Git服务器:Soft Serve实战
运维·服务器·git
知无不研3 小时前
对套接字的深入理解
linux·服务器·网络·c++·socket·网络套接字
ZStack开发者社区5 小时前
VMware替代:从POC通过到生产可用,差距在哪里
服务器·云计算·gpu算力
AI创界者5 小时前
运维进阶:如何使用 Medusa 进行企业内部服务器密码合规性审计?
运维·服务器
|_⊙6 小时前
Linux 信号
运维·服务器·前端