35 lines
1.2 KiB
Markdown
35 lines
1.2 KiB
Markdown
- 开发环境
|
||
> macOS + Docker 部署 openeuler/openeuler(详细见 Dockefile 以及 docker-compose.yml)
|
||
|
||
技术:
|
||
1. 客户端根据提示创建并上传一个文件到服务端。
|
||
2. 服务端对文件进行SM4加密后压缩并存储。
|
||
3. 客户端请求下载文件时,服务端解压解密文件,将内容返回客户端。
|
||
4. 使用线程和信号量限制客户端的并发连接数。
|
||
5. 通过进程间通信记录操作日志(使用管道)。
|
||
6. 客户端和服务端通过 socket 通信。
|
||
7. 文件操作会创建时间戳的目录管理文件。
|
||
|
||
~~~bash
|
||
gcc -o server server.c -lpthread -L/usr/local/lib -I/usr/local/include -lgmssl -lz
|
||
gcc -o client client.c
|
||
~~~
|
||
|
||
|
||
|
||
|
||
|
||
启动测试:
|
||
1、启动服务端:./server
|
||
2、启动客户端:./client
|
||
3、客户端根据提示输入命令及内容
|
||
|
||
启动报错处理
|
||
tong ~/Tomyee/money/linux/code (master●●●)$ ./server
|
||
dyld[90941]: Library not loaded: @rpath/libgmssl.3.dylib
|
||
Referenced from: <E7AE7786-E167-3C49-96A1-C5BE4CE5147D> /Users/tong/Tomyee/money/linux/code/server
|
||
Reason: no LC_RPATH's found
|
||
[1] 90941 abort ./server
|
||
|
||
|
||
临时办法:export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH |