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

}

}

相关推荐
简佐义的博客10 小时前
破解非模式物种GO/KEGG注释难题
开发语言·数据库·后端·oracle·golang
snoopyfly~11 小时前
Ubuntu 24.04 LTS 服务器配置:安装 JDK、Nginx、Redis。
java·服务器·ubuntu
Me4神秘11 小时前
Linux国产与国外进度对垒
linux·服务器·安全
-qOVOp-13 小时前
408第三季part2 - 计算机网络 - ip分布首部格式与分片
网络协议·tcp/ip·计算机网络
数通Dinner13 小时前
RSTP 拓扑收敛机制
网络·网络协议·tcp/ip·算法·信息与通信
牛奶咖啡1314 小时前
Linux系统的常用操作命令——文件远程传输、文件编辑、软件安装的四种方式
运维·服务器·软件安装·linux云计算·scp文件远程传输·vi文件编辑·设置yum的阿里云源
恋喵大鲤鱼14 小时前
Golang 运算符
golang·运算符
weixin_4373982114 小时前
转Go学习笔记(2)进阶
服务器·笔记·后端·学习·架构·golang
tan77º15 小时前
【Linux网络编程】Socket - UDP
linux·服务器·网络·c++·udp