# network_cpp **Repository Path**: YaoDecheng/network_cpp ## Basic Information - **Project Name**: network_cpp - **Description**: 网络编程测试项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-24 - **Last Updated**: 2024-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 网络编程测试项目 * 包含多线程代码 * windows和linux测试通过 * 主要完成 udp 通讯和udp 多播 * 简单测试了 tcp 通讯 * 兼容ipv4和ipv4 # windows下编译 推荐使用Ninja 创建一个文件夹 build ```bash cd build cmake -G "Ninja" .. ninja ``` # linux 下编译 创建一个文件夹 build ```bash cd build cmake .. make ``` # ubuntu 查看端口占用 ```sh sudo ss -tulnp ``` # 网络测试笔记 * ipv6 网络中udp网络通讯中需要指定出口网卡才能正确发送,指定的方法一般是在 ip%eth0比如ping命令 : ```bash ping fe80::56bf:64ff:fe91:9bca%eth0 #linux 下一般是这样,这个是网卡名称。这个一般不会变 ping fe80::56bf:64ff:fe91:9bca%20 # windows 下一般是数字,这个数字有可能会随系统重启而改变 ADEALL_UDP_SERVER::MessagSend("fe80::215:5dff:fe9f:c01%eth0", 8887,"hello"); ``` * 组播监听也是需要指定某个网卡,才能正确监听到组播信息,一般情况下通过ip信息进行网卡绑定 * 可以监听多个网卡 ```cpp ADEALL_UDP_SERVER::Init(42102, this); //监听42102 端口 ADEALL_UDP_SERVER::AddMulticast("224.0.2.2", "192.168.147.1"); //eth0 上有这个ip ADEALL_UDP_SERVER::AddMulticast("224.0.2.2", "192.168.2.1"); //eth1 上有这个ip ``` * ipv6 的本地地址 ::1 =127.0.0.1; :: = 0.0.0.0 * ipv4 在ipv6的映射形如: 192.168.2.147 = ::ffff:192.168.2.147