2 Star 11 Fork 5

张奇峰 / c_tcp_udp

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 2.71 KB
一键复制 编辑 原始数据 按行查看 历史

C语言 tcp_udp

介绍

c语言 实现的 tcp、udp 网络通信服务器, tcp server 采用 epoll(lt) 模型,实现了多客户端同时连接(最大连接值暂定为8192),收发消息.
也可以作为您了解、学习 sokcet 网络编程的一份完整资料.

我们的目的

基于这份 socket 完整代码, 在 cgo 或其他语言之间进行技术探索,将自己掌握的技术融汇贯通,让不同语言都为我所用!
未来, 我们还将实现 MQTT协议 ,所有偏硬件的协议全部采用 c语言 实现, 最终编译为 linux so 库 ,供 go 或其他语言调用.

使用说明

1.本套代码仅在 linux 经过了测试、编译、运行, windows 未做任何测试.
2.客户端您可以在网上下载一款现成的网络工具进行测试,例如:https://wwa.lanzous.com/ik0g8gwirqj , 该工具支持 tcp 、 udp(但是udp只支持发消息,不支持收消息).
提醒:由于很多 window 端的网络测试工具发送的中文是 ansi(gbk系列) 编码, 本服务端目前只能处理 gbk系列和 utf-8 编码,其他编码中奇怪的字符无法支持.

文件清单

截图已经包括了源文件以及编译后的文件,编译部分将在后续介绍.
文件清单

TCP 服务端编译

// 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测试

使用第三方 网络工具测试
tcp测试2

UDP 服务端编译

// 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测试

使用第三方 网络工具测试
udp测试2

C
1
https://gitee.com/daitougege/c_tcp_udp.git
git@gitee.com:daitougege/c_tcp_udp.git
daitougege
c_tcp_udp
c_tcp_udp
master

搜索帮助