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

}

}

相关推荐
树码小子7 分钟前
网络原理(13):TCP协议十大核心机制 -- 确认应答 & 超时重传
服务器·网络·tcp/ip
王火火(DDoS CC防护)14 分钟前
什么是域名解析?如何进行域名解析?
服务器·域名·域名解析
羊羊羊i16 分钟前
使用client-go访问k8s集群
golang·kubernetes
谢平康18 分钟前
通过nfs方式做目录限额方法
linux·服务器·网络
I · T · LUCKYBOOM22 分钟前
2.2yum安装--单服务器托管多网站
linux·运维·服务器
龘龍龙25 分钟前
Python基础学习(十)
服务器·python·学习
释怀不想释怀34 分钟前
Linux(复习常见命令)
linux·运维·服务器
源代码•宸39 分钟前
goframe框架签到系统项目开发(实现总积分和积分明细接口、补签日期校验)
后端·golang·postman·web·dao·goframe·补签
2501_9167665443 分钟前
Springboot+vue前后端分离项目部署到云服务器
服务器
礼拜天没时间.1 小时前
【生产级实战】Linux 集群时间同步详解(NTP + Cron,超详细)
linux·运维·服务器·时间同步·cron·ntp