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 编码,其他编码中奇怪的字符无法支持.
截图已经包括了源文件以及编译后的文件,编译部分将在后续介绍.
// 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测试
使用第三方 网络工具测试
// 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 测试
使用第三方 网络工具测试
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。