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

}

}

相关推荐
sdm0704272 分钟前
应用层自定义协议
运维·服务器·网络
VOOHU-沃虎25 分钟前
VOOHU——防水RJ45连接器在户外网络设备中的应用与选型
运维·服务器·网络
晴天¥28 分钟前
达梦数据库的内存结构
服务器·数据库·达梦数据库
XMYX-01 小时前
33 - Go 文本模板 template:从入门到原理深挖
golang·正则表达式
yyuuuzz1 小时前
谷歌云使用的几个常见注意事项
运维·服务器·网络·安全·web安全·云计算·aws
大明者省1 小时前
完整 Ubuntu 服务器 XFCE 桌面 + XRDP 远程桌面 部署使用全流程
运维·服务器·ubuntu
上海云盾-小余1 小时前
业务层 CC 攻击精准研判:行为识别与轻量化拦截方案
运维·服务器·安全·架构
神奇椰子1 小时前
Windows 系统 MC 服务器搭建保姆级教程
运维·服务器·windows
志栋智能2 小时前
从单点检查到全景监控:巡检超自动化的维度拓展
运维·服务器·网络·人工智能·自动化
实心儿儿2 小时前
Linux —— Linux进程信号 - 信号产生
linux·运维·服务器