项目简介
本项目是基于C语言的简单Linux网络编程示例。它包含TCP通信里三次握手、四次挥手和滑动窗口的原理,提供一对一、一对多(多进程版和多线程版)的CS(客户端 - 服务器)模型TCP通信示例,助力开发者掌握Linux环境下TCP套接字编程的基本流程与技术要点。
项目的主要特性和功能
- 理论知识演示:详细阐释TCP协议中三次握手、四次挥手和滑动窗口的原理,搭配示意图与文字说明。
- 一对一通信:实现简单的一对一CS模型TCP通信,客户端发送数据,服务器接收并把小写字母转为大写字母后返回给客户端。
- 一对多通信:
- 多进程版:运用多进程处理多个客户端的连接请求,父进程负责监听新连接,子进程负责处理客户端数据。
- 多线程版:利用多线程处理多个客户端的连接请求,主线程负责监听新连接,子线程负责处理客户端数据。
- 代码封装:提供
wrap.h
和wrap.c
文件,对底层socket操作进行封装,让代码更简洁、易维护。
安装使用步骤
编译
- 一对一通信:
- 编译服务器端:
gcc server.c -o server
- 编译客户端:
gcc client.c -o client
- 编译服务器端:
- 多进程通信:
- 编译服务器端:
gcc server.c wrap.c -o server
- 编译客户端:
gcc client.c wrap.c -o client
- 编译服务器端:
- 多线程通信:
- 编译服务器端:
gcc server.c wrap.c -o server -lpthread
- 编译客户端:
gcc client.c wrap.c -o client
- 编译服务器端:
运行
- 先运行服务器程序:
./server
- 再运行客户端程序:
./client
测试
在客户端输入文本,按Enter键发送。服务器会接收数据,将小写字母转换为大写字母后发送回客户端。可同时开启多个客户端进行一对多通信测试。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】