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

}

}

相关推荐
e***985712 分钟前
TCP/IP协议栈全解析:从基础到未来
网络·网络协议·tcp/ip
东皇太星37 分钟前
linux 内存管理详解
linux·运维·服务器
雨中散步撒哈拉37 分钟前
22、做中学 | 高一下期 | Golang反射
开发语言·golang·状态模式
JY.yuyu42 分钟前
Linux计划任务进程
linux·运维·服务器
情缘晓梦.1 小时前
Linux指令和权限
linux·运维·服务器
ybdesire1 小时前
Joern服务器启动后cpgqls-client结合python编程进行扫描
运维·服务器·python
Ydwlcloud1 小时前
个人博客与内容站部署在AWS:2026年的理性选择与更优策略
大数据·服务器·人工智能·云计算·aws
DICOM医学影像1 小时前
8. go语言从零实现以太坊响应端 - 查询区块链账户余额
golang·区块链·以太坊·web3.0·响应端·从零实现
柳鲲鹏2 小时前
断电重启和reboot,还是有很大差异
linux·运维·服务器
遇见火星2 小时前
部署DNS主从服务器
运维·服务器·dns·bind9