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

}

}

相关推荐
号码认证服务6 分钟前
如何让来电显示公司名代替陌生数字号码?企业号码认证开通指南
服务器·c语言·网络·经验分享·智能手机·云计算·php
omenkk726 分钟前
网络IO模型-从BIO到IO多路复用
服务器·网络
j7~29 分钟前
【Linux系统】基础IO(文件描述)(1)
linux·服务器·c++·文件·基础io
xhbh66630 分钟前
内网端口映射外网完全教程:路由器端口转发配置+内网穿透工具实战
服务器·网络·智能路由器·端口映射·映射
gjc59232 分钟前
Linux MySQL服务器SSH多端口配置:解决22端口禁直连,兼顾安全与运维
linux·运维·服务器·mysql·ssh
柿柿快乐44 分钟前
用户认证系统实现文档
linux·服务器·网络·学习·基础教学
楼田莉子1 小时前
Linux网络:多路转接IO
服务器·c++·后端·软件构建
倔强的小石头_1 小时前
密码多了记不住,放云端又怕泄露?我用 NAS 自建了密码保险箱
服务器·password
岳来1 小时前
linux 设备目录/dev 学习
linux·服务器·/dev
红茶要加冰1 小时前
三、条件测试
linux·运维·服务器