## C语言 tcp_udp
#### 介绍
> `c语言` 实现的 `tcp、udp` 网络通信服务器, `tcp server` 采用 `epoll(lt)` 模型,实现了多客户端同时连接(最大连接值暂定为8192),收发消息.
> 也可以作为您了解、学习 `sokcet` 网络编程的一份完整资料.
#### 我们的目的
> 基于这份 `socket` 完整代码, 在 `c` 和 `go` 或其他语言之间进行技术探索,将自己掌握的技术融汇贯通,让不同语言都为我所用!
未来, 我们还将实现 `MQTT协议` ,所有偏硬件的协议全部采用 `c语言` 实现, 最终编译为 `linux so 库` ,供 go 或其他语言调用.
#### 使用说明
> 1.本套代码仅在 `linux` 经过了测试、编译、运行, `windows` 未做任何测试.
> 2.客户端您可以在网上下载一款现成的网络工具进行测试,例如:https://wwa.lanzous.com/ik0g8gwirqj , 该工具支持 tcp 、 udp(但是udp只支持发消息,不支持收消息).
> 提醒:由于很多 `window` 端的网络测试工具发送的中文是 `ansi(gbk系列)` 编码, 本服务端目前只能处理 gbk系列和 utf-8 编码,其他编码中奇怪的字符无法支持.
#### 文件清单
> 截图已经包括了源文件以及编译后的文件,编译部分将在后续介绍.
![文件清单](http://139.196.101.31:2080/images/tcp_udp_list.png)
#### TCP 服务端编译
```code
// tcp 服务默认在 9505 端口提供服务, 请自行将 9505 端口在防火墙放行
firewall-cmd --zone=public --add-port=9505/tcp --permanent
firewall-cmd --complete-reload
//编译 tcpserver
gcc -o tcp_server ./tcp_server.c ./libs/functions.c ./errors.c
//启动
./tcpserver
//编译 tcpclient
gcc -o tcpclient ./tcp_client.c
//启动
./tcpclient
```
> **使用tcpserver和tcpclient测试**
![使用tcpserver和tcpclient测试](http://139.196.101.31:2080/images/tcp1.png)
> **使用第三方 网络工具测试**
![tcp测试2](http://139.196.101.31:2080/images/tcp2.png)
#### UDP 服务端编译
```code
// udp 服务默认在 9506 端口提供服务, 请自行将 9506 端口在防火墙放行,注意,这里的防火墙端口协议是 udp, 不要写错了,否则无法收发消息
firewall-cmd --zone=public --add-port=9506/udp --permanent
firewall-cmd --complete-reload
//编译 udpserver
gcc -o udp_server ./udp_server.c ./libs/functions.c ./errors.c
//启动
./udpserver
//编译 udpclient
gcc -o udpclient ./udp_client.c
./udpclient
```
> **使用 udpserver 和 udpclient 测试**
![使用udpserver和udpclient测试](http://139.196.101.31:2080/images/udp1.png)
> **使用第三方 网络工具测试**
![udp测试2](http://139.196.101.31:2080/images/udp2.png)
没有合适的资源?快使用搜索试试~ 我知道了~
C语言实现的tcp、udp网络通信服务.rar
共12个文件
c:7个
txt:1个
md:1个
需积分: 5 1 下载量 22 浏览量
2023-06-11
10:46:44
上传
评论
收藏 17KB RAR 举报
温馨提示
相同点:都是传输层的协议 不同点: TCP协议:是一种面向连接的传输层协议,它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)。 适用情况:适合于对传输质量要求较高,以及传输大量数据的通信。在需要可靠数据传输的场合,通常使用TCP协议。 如:MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议。 UDP协议:用户数据报协议,是不可靠的无连接的协议。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。 适用情况:发送小尺寸数据(如对DNS服务器进行IP地址查询时)在接收到数据,给出应答较困难的网络中使用UDP。(如:无线网络)适合于广播/组播式通信中,通常使用TCP协议。 如:MSN/QQ等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议;流媒体、VOD、VoIP等网络多媒体服务中通常采用UDP方式进行实时数据传输。
资源推荐
资源详情
资源评论
收起资源包目录
C语言实现的tcp、udp网络通信服务.rar (12个子文件)
C语言实现的tcp、udp网络通信服务
新建文本文档.txt 19B
c_tcp_udp-master
errors.c 884B
LICENSE 11KB
libs
functions.c 4KB
functions.h 351B
udp_client.c 835B
udp_server.c 3KB
tcp_server.c 7KB
tcp_server_epoll_et.c 7KB
tcp_client.c 2KB
.gitignore 430B
README.md 3KB
共 12 条
- 1
资源评论
野生的狒狒
- 粉丝: 1681
- 资源: 1668
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功