zzlyzq / serverandclient

一个TCP服务端/客户端程序,它能够接受多个客户端的连接,显示客户端上报的硬件等信息,并且可以通过命令行与连接的客户端进行交互。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

以下是服务端与客户端程序的 README 文档:


TCP 服务端与客户端程序

简介

这是一个基于 TCP 协议的服务端和客户端程序。服务端监听指定的端口,接受客户端连接,并接收和处理客户端发送的系统信息和命令。客户端会发送系统信息,包括 CPU 信息、内存信息、磁盘信息、网卡 MAC 地址等,定时发送 PING 信息以保持连接。

服务端

功能

  1. 接受客户端连接,并接收客户端发送的系统信息。
  2. 定时每 10 秒钟发送一次 PING 给在线客户端,检测连接状态,异常则从列表中删除该客户端。
  3. 提供命令行交互界面,支持查看连接的客户端列表,搜索客户端信息等功能。

编译与运行

  1. 编译服务端程序:

    go build -o server server.go
  2. 运行服务端程序:

    ./server -h <监听IP> -p <监听端口>

    参数说明:

    • -h:监听的 IP 地址,默认为 0.0.0.0
    • -p:监听的端口,默认为 4000

示例命令

  1. 列出所有连接的客户端:

    list
    
  2. 搜索客户端信息:

    search <关键字>
    
  3. 连接到指定客户端:

    connect <客户端编号>
    

客户端

功能

  1. 连接到指定的服务端地址和端口。
  2. 发送系统信息,包括 CPU 信息、内存信息、磁盘信息、物理网卡的 MAC 地址等。
  3. 接收并执行服务端发送的命令,并返回命令执行结果。

编译与运行

  1. 编译客户端程序:

    go build -o client client.go
  2. 运行客户端程序:

    ./client -h <服务端IP> -p <服务端端口>

    参数说明:

    • -h:服务端 IP 地址,默认为 127.0.0.1
    • -p:服务端端口,默认为 4000

代码结构

服务端

  • server.go:服务端主程序,包含客户端连接管理、命令处理等功能。

客户端

  • client.go:客户端主程序,包含系统信息采集、命令接收与执行等功能。

示例

运行服务端

./server -h 0.0.0.0 -p 4000

运行客户端

./client -h 127.0.0.1 -p 4000

服务端命令行示例

> list
连接的客户端列表:
  客户端 1: 127.0.0.1:53251, 系统信息: CPU: ...

> search Intel
搜索结果:
  客户端 1 系统信息:
    IP地址和端口: 127.0.0.1:53251
    CPU: Model: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz, ...
    Memory: 16384MB
    Disk: 512GB
    ...

通过以上步骤和命令,您可以编译并运行该 TCP 服务端与客户端程序,并使用命令行接口与客户端进行交互。

About

一个TCP服务端/客户端程序,它能够接受多个客户端的连接,显示客户端上报的硬件等信息,并且可以通过命令行与连接的客户端进行交互。


Languages

Language:Go 100.0%