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

}

}

相关推荐
我是伪码农13 分钟前
注册表单提交加验证码功能
运维·服务器
nextvary1 小时前
cursort如何在不同项目下自动适配asdf安装的golang
golang·cursor·asdf
盛世宏博北京1 小时前
从服务器机房到 IDC 集群:网口温湿度变送器的全场景适配监控
运维·服务器
松涛和鸣2 小时前
41、Linux 网络编程并发模型总结(select / epoll / fork / pthread)
linux·服务器·网络·网络协议·tcp/ip·算法
Linux Huang2 小时前
spring注册组件/服务无效,问题排查
大数据·服务器·数据库·spring
Muscleheng2 小时前
Linux安装LibreOffice
linux·运维·服务器
Javis2112 小时前
【Go转型AI应用开发】01.Go+OpenAI原生SDK构建LLM-Client
golang·iphone·ai-native
bugtraq20212 小时前
PentestGPT的部署和使用本地大模型的调试记录
linux·服务器·python
信鸽爱好者3 小时前
Windows +VM虚拟机安装github服务器
服务器·windows·ubuntu·机器人·github
做一个码农都是奢望4 小时前
高算linux平台如何安装gprmax
linux·运维·服务器