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

}

}

相关推荐
IMPYLH8 分钟前
Linux 的 wc 命令
linux·运维·服务器·前端·bash
zxy64449247319 分钟前
Centos7.9编译安装PHP7.4
linux·运维·服务器
无限进步_22 分钟前
【Linux】从冯诺依曼到操作系统:理解计算机运行的基本脉络
linux·运维·服务器
Rabbit_QL1 小时前
【ln -s】Linux 软链接在大模型部署中的应用
linux·运维·服务器
IP搭子来一个1 小时前
舆情监控系统怎么接入代理 IP?多平台多账号采集的配置全流程
网络协议·tcp/ip·数据分析
希望永不加班1 小时前
var局部变量类型推断的利弊
java·服务器·前端·javascript·html
小贾要学习2 小时前
【Linux】基于自定义TCP协议的日期计算器
linux·网络·c++·网络协议·tcp/ip
樱桃花下的小猫2 小时前
游戏云服务器定时任务设置教程
服务器·游戏·新手友好·云鸢互联·零门槛一键开服
中国lanwp2 小时前
GitLab 按访问IP动态切换项目下载/克隆地址原理与配置说明
网络协议·tcp/ip·gitlab
oo哦哦2 小时前
同城矩阵系统的中心地密码:用克里斯塔勒中心地理论和引力模型,解释为什么你的10个探店号加起来,还不如别人3个
服务器·人工智能·矩阵