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

}

}

相关推荐
爱装代码的小瓶子30 分钟前
Linux下的权限与文件
linux·运维·服务器
励志不掉头发的内向程序员1 小时前
【Linux系列】解码 Linux 内存地图:从虚拟到物理的寻宝之旅
linux·运维·服务器·开发语言·学习
幼稚园的山代王8 小时前
go语言了解
开发语言·后端·golang
zhuyasen8 小时前
踩坑实录:Go 1.25.x 编译的 exe 在 Windows 提示“此应用无法运行”
windows·golang
板鸭〈小号〉8 小时前
Socket网络编程(2)-command_server
运维·服务器
派阿喵搞电子10 小时前
关于使用docker部署srs服务器的相关指令
服务器·docker·容器
qq_3391911410 小时前
aws ec2防ssh爆破, aws服务器加固, 亚马逊服务器ssh安全,防止ip扫描ssh。 aws安装fail2ban, ec2配置fail2ban
服务器·ssh·aws
csdn_Hzx11 小时前
Linux添加一个系统服务
linux·运维·服务器
重生之我在20年代敲代码12 小时前
【Linux】初始线程
linux·运维·服务器
小猪写代码13 小时前
服务器:常用文件夹介绍
运维·服务器