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 分钟前
Redis 线程模型:Redis为什么这么快?Redis为什么引入多线程?
java·数据库·redis·sql·mysql·缓存·golang
普普通通的南瓜1 小时前
无需域名,直通安全:一年期免费IP SSL证书
网络·网络协议·tcp/ip·安全·ssl
tokepson1 小时前
香橙派AI Pro个人云平台 - 从零搭建全记录
linux·服务器·技术·记录
@YDWLCloud3 小时前
用腾讯云国际版搭建全球加速架构:5 分钟实现多地访问提速
服务器·架构·云计算·github·腾讯云
步步为营DotNet3 小时前
深入理解IAsyncEnumerable:异步迭代的底层实现与应用优化
java·服务器·数据库
装不满的克莱因瓶3 小时前
【Java架构 搭建环境篇三】Linux安装Git详细教程
java·linux·运维·服务器·git·架构·centos
wanhengidc3 小时前
云手机深度解析其原理与功能
服务器·科技·游戏·智能手机
源代码•宸3 小时前
分布式缓存-GO(项目整体架构简介、Ubuntu 22.04 64位安装GoLang、安装Docker、解决Go module 的依赖问题)
经验分享·分布式·后端·ubuntu·缓存·docker·golang
黑客思维者3 小时前
突破 Python 多线程限制:GIL 问题的 4 种实战解法
服务器·数据库·python·gil
至善迎风3 小时前
Linux 服务器安全防护工具完全指南
linux·服务器·安全·防火墙