业务逻辑
1. 服务端:创建socket,初始化消息队列
2. 服务端:创建至少一个线程处理消息队列中的请求
3. 服务端:等待客户端请求
4. 客户端:连接服务端
5. 客户端:读取c源码文件(无需自定义的.h头文件)
6. 客户端:将c源码文件通过预先创建好的socket发送给服务端
7. 服务端:创建一个线程,接受数据,并存入消息队列(暂存请求功能)
8. 服务端:消息队列是一个线程安全的表数据结构(可用链表或者数组)
9. 服务端: 消息处理线程,从消息队列中获取数据,将数据保存为c源码文件,并且通过临时的管道,执行编译指令(例如:gcc hello.c),将生成的可执行文件(例如:a.out),重新传回给客户端。
10. 客户端:接收服务端传回的数据,将数据保存成二进制文件,赋予该文件可执行权限,最后通过临时的管道,执行该文件,并将文件输出信息,打印到屏幕上。

上传的附件 lukang2.rar