client-server

所属分类:Pascal/Delphi编程
开发工具:C++
文件大小:0KB
下载次数:0
上传日期:2017-11-23 02:55:09
上 传 者sh-1993
说明:  基于套接字和pthread的客户机-服务器演示。
(A client-server demo, based on socket and pthread.)

文件列表:
client-mt.cpp (1819, 2017-11-22)
client-single.cpp (1135, 2017-11-22)
qt-client-server/ (0, 2017-11-22)
qt-client-server/client-server.pro (1089, 2017-11-22)
qt-client-server/client-server.pro.user (25201, 2017-11-22)
qt-client-server/client.cpp (3291, 2017-11-22)
qt-client-server/client.h (907, 2017-11-22)
qt-client-server/main.cpp (171, 2017-11-22)
qt-client-server/mainwindow.cpp (2636, 2017-11-22)
qt-client-server/mainwindow.h (864, 2017-11-22)
qt-client-server/mainwindow.ui (13514, 2017-11-22)
qt-client-server/server.cpp (5207, 2017-11-22)
qt-client-server/server.h (958, 2017-11-22)
screenshot.png (300550, 2017-11-22)
server-mp.cpp (2780, 2017-11-22)
server-mt.cpp (2817, 2017-11-22)
server-single.cpp (2577, 2017-11-22)

# Client-server Demo 这是我在 XJTU 学习操作系统课程时所做的实验项目。最初是在命令行下实现了 C/S 结构,后来用 Qt 做了界面美化。仅供学习用途。 ## 原理 基于 C 中的 socket 库,服务器和客户端通过建立 socket 进行通信。客户端发送一个整数值 `x` 给服务器,服务器计算函数 `f(x)` 并返回。在这个程序中,`f(x)` 递归地计算斐波那契数列的第 `x` 项,时间复杂度 `O(2^n)`。 ## 编译 ### 命令行 项目根目录下的源代码都是可直接用 `g++` 编译的单文件。它们在命令行下运行: * `server-single.cpp`:单线程服务器 * `server-mt.cpp`:多线程服务器 * `server-mp.cpp`:多进程服务器 * `client-single.cpp`:串行请求客户端 * `client-mt.cpp`:并发请求客户端 ### Qt Qt 项目在 qt-client-server 目录下,用 Qt Creator 打开编译即可。 ## 操作方法 左边是服务器控制面板,可以设置服务器的监听端口、等待队列中最多可以容纳的请求数量、和服务器类型(单线程、多线程(pthread)、多进程(fork))。 右边是客户端控制面板,可以设置客户端的请求地址、并发请求的数量、和 $x$ 的值。注意不要将 x 或 Num 设置过大的值,否则可能导致程序无响应。 ## 支持 在 macOS 下编译,理论支持 Linux。由于用到了 `pthread` 和 `fork`,所以是不支持原生 Windows 的。 ![](https://github.com/afterthat97/client-server/blob/master/screenshot.png) ## 反馈与交流 如果你发现 bug 或者有更好的建议,欢迎通过邮件与我联系。

近期下载者

相关文件


收藏者