目标
完成一个以socket套接字为基础的c/s服务器程序,该程序通过客户端与服务器端连接后,实现一个交互式SHELL的功能。
运行环境:
Linux系统。同一主机,ip为本地回环 “127.0.0.1”
需求概述
完成一个以socket套接字为基础的c/s服务器程序,该程序通过客户端与服务器端连接后,实现一个交互式SHELL的功能。
其中服务端用popen来创建子进程执行客户端发出的命令。
同时客户端内也有一个功能基本完整的shell程序。
服务器主要功能:
采用多线程架构,每个线程可与客户端连接。通过接受客户端从管道中写入的命令,执行,并将返回结果写入管道由客户端读出。
Server端通过socket套接字接收client 端发出的信息,发送到套接字中的内容包括数据的长度,以及数据的内容。
Server端需要先接收到数据头中的数据长度值,再接收传入命令的具体内容。
收到数据后执行popen函数,将其返回的内容写入到套接字中,同样发送的内容为两次:一,数据长度。二,数据内容。
Server端具有设置client连接上限的功能,当达到上限时,关闭连接套接字,断开与client端的连接。
1