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

}

}

相关推荐
朋克洛德的码农1 小时前
反射是什么?
golang
我命由我123452 小时前
匈牙利命名法
java·服务器·后端·学习·java-ee·kotlin·学习方法
小田的博客2 小时前
SAP MM 供应商银行主数据更新报错!message R1228!
android·java·服务器
牢姐与蒯3 小时前
Linux基本指令及知识点(二)
linux·运维·服务器
去伪存真20253 小时前
数字样机、态势推演与3D汇报场景下的平台选型对比
运维·服务器
March.s5 小时前
IP 存储核心 iSCSI:原理拆解 + 无报错实战指南
网络·网络协议·tcp/ip
Richard.Wong5 小时前
Windows IIS 服务器部署 Vue3 前端项目详细流程
服务器·前端·windows
Nemo_XP5 小时前
C# gridlookupedit选中内容重复还原操作
服务器·前端·c#
wsad05327 小时前
CentOS Stream 10 配置静态 IP 完整指南
linux·tcp/ip·centos
我不满意7 小时前
在windows服务器上安装oracle 11g,怎么配置后,默认安装的监听地址是内网IP,而不是127.0.0.1
运维·服务器