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

}

}

相关推荐
pumpkin8451422 分钟前
01 Coze Studio项目中所有关键术语的详细解释和代码示例
golang
白狐_79825 分钟前
【计网全栈通关】第 5 篇:网络层核心计算——IP 地址规划、子网划分与 CIDR
网络协议·tcp/ip·php
Java程序之猿30 分钟前
Linux使用U盘安装centos及报错You might want to saue “/run/initramfs/rdsosreport.txt“ 处理
linux·运维·服务器
L1624761 小时前
通用 Linux 系统存储选型总手册(MBR ,GPT,ext4,xfs)
linux·服务器
明洞日记2 小时前
【软考每日一练008】Web 服务器性能测试指标
运维·服务器·操作系统·软考
以太浮标2 小时前
华为eNSP模拟器综合实验之- AC+AP无线网络调优与高密场景
java·服务器·华为
好多渔鱼好多2 小时前
【IPC】 RTSP Server 如何实现推流
服务器·ipc·rtsp server·rtsp 推流实现
23124_802 小时前
Cookie伪造
运维·服务器
RisunJan2 小时前
Linux命令-killall(根据进程名称来终止一个或多个进程)
linux·运维·服务器
小-黯3 小时前
Linux桌面入口文件.desktop文件内容格式
linux·运维·服务器