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

}

}

相关推荐
不会画画的画师14 小时前
Go开发指南:io/ioutil包应用和迁移指南
开发语言·后端·golang
TG:@yunlaoda360 云老大15 小时前
华为云国际站代理商备份策略设置过程中遇到问题如何解决?
服务器·数据库·华为云
手揽回忆怎么睡15 小时前
Alibaba Linux 8安装jdk25
linux·运维·服务器
youliroam16 小时前
ESP32-S3+OV2640简单推流到GO服务
开发语言·后端·golang·esp32·ov2640
码luffyliu16 小时前
从 2 小时价格轮询任务通知丢失,拆解 Go Context 生命周期管控核心
后端·golang·go
萌萌哒草头将军16 小时前
AudioDock:服务器和 NAS 音频播放最棒的软件!🚀🚀🚀
服务器·docker·node.js
lifewange17 小时前
测试场景 Linux 命令速查表
linux·运维·服务器
就叫飞六吧17 小时前
JSONPath“隔空取物”思想,直击JSON深处的目标字段
服务器·windows·json
姚青&17 小时前
Linux 命令介绍以及帮助命令介绍
linux·运维·服务器
遇见火星17 小时前
详解 Linux 中的 /etc/fstab 文件
linux·运维·服务器