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

}

}

相关推荐
HealthScience1 小时前
vscode怎么连接远程服务器/无密码(使用秘钥)登录
服务器·ide·vscode
i***27951 小时前
【golang学习之旅】使用VScode安装配置Go开发环境
vscode·学习·golang
是小胡嘛2 小时前
华为云CentOS系统中运行http服务器无响应
linux·服务器·c++·http·centos·华为云
小猪佩奇TONY3 小时前
OpenGL-ES 学习(16) ----Pixel Buffer Object
服务器·学习·elasticsearch
RXXW_Dor3 小时前
西门子EtherNet/IP 适配器 通过 EtherNet/IP 将第三方控制系统连接到 SIMATIC S7 控制器
linux·网络·tcp/ip
Mr.H01273 小时前
(上册)TCP 服务器核心流程实操指南
linux·服务器·网络·tcp/ip
HappRobot3 小时前
WebLogic服务器的JVM参数调整
服务器·jvm·chrome
饭九钦vlog4 小时前
修复重装机kali机器上不了网络域名问题一键脚本
服务器·网络·php
TG:@yunlaoda360 云老大5 小时前
怎么在亚马逊云服务器上部署Node.js?
运维·服务器·node.js·aws
拾忆,想起5 小时前
Dubbo跨机房调用实战:从原理到架构的完美解决方案
服务器·网络·网络协议·tcp/ip·架构·dubbo