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

}

}

相关推荐
User_芊芊君子2 小时前
影音自由新玩法:Plex+cpolar 解锁异地访问,告别网盘限速烦恼
服务器·nginx·测评
wanhengidc2 小时前
云手机的运行环境如何
运维·服务器·游戏·智能手机·生活
cyber_两只龙宝3 小时前
【Haproxy】Haproxy的算法详解及配置
linux·运维·服务器·云原生·负载均衡·haproxy·调度算法
hy____1234 小时前
Linux_网络基础3
linux·服务器·网络
Mr. Cao code4 小时前
MySQL服务器配置与socket连接详解
服务器·数据库·mysql
Villiam_AY5 小时前
一次 DNS 端口引发的代理网络和公司内网冲突问题
java·服务器·数据库
dgvri7 小时前
Windows上安装Go并配置环境变量(图文步骤)
开发语言·windows·golang
C++ 老炮儿的技术栈8 小时前
Linux 文件系统目录架构全解析
linux·服务器·c语言·开发语言·c++
小比特_蓝光8 小时前
Linux:基本指令
linux·运维·服务器
王夏奇9 小时前
python中的深浅拷贝和上下文管理器
java·服务器·前端