网络编程 UDP 设定MTU

MTU(Maximun Transmisson Unit):一次送信的最大size。

在程序里动态改变MTU。注意:程序运行需要root权限。

程序运行的方法:

sudo ./a.out

1,取得MTU

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <net/if.h> int main(){
int fd;
ifreq ifr; fd = socket(AF_INET, SOCK_DGRAM, 0); strncpy(ifr.ifr_name, "enp0s3", IFNAMSIZ - 1); if(ioctl(fd, SIOCGIFMTU, &ifr) != 0){
perror("ioctl");
return 1;
}
close(fd); printf("Maximun Transmisson Unit:%d\n", ifr.ifr_mtu); return 0; }

github源代码

2,改变MTU

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <net/if.h> int main(){
int fd;
ifreq ifr; fd = socket(AF_INET, SOCK_DGRAM, 0); strncpy(ifr.ifr_name, "enp0s3", IFNAMSIZ - 1); //change Maximun Transmisson Unit to 1400
ifr.ifr_mtu = 1400; if(ioctl(fd, SIOCSIFMTU, &ifr) != 0){
perror("ioctl");
return 1;
}
close(fd); printf("Maximun Transmisson Unit:%d\n", ifr.ifr_mtu); return 0; }

github源代码

在命令行里也可以查看和改MTU(需要root权限)

改变MTU:

sudo ifconfig enp0s3 mtu 1400

查看当前的MTU:

sudo ifconfig enp0s3

c/c++ 学习互助QQ群:877684253

本人微信:xiaoshitou5854

最新文章

  1. 浏览器内核、渲染引擎、js引擎
  2. hdu2874 LCA在线算法
  3. 浅谈声明与定义的区别 分类: C/C++ 2015-06-01 15:08 157人阅读 评论(4) 收藏
  4. EasyUI的datagrid分页
  5. 【jquery】字符ascii码转换函数
  6. Mysql的一些常用命令
  7. linq入门系列导航
  8. Java多线程初学者指南系列教程
  9. 安装64位版Oracle11gR2后无法启动SQLDeveloper的解决方案(原创) (2016-10-29 下午01:56)
  10. 关于SWT的容器类之----面板Composite类和Group类
  11. [React] React Fundamentals: Component Lifecycle - Mounting Basics
  12. Kafka 0.8: 多日志文件夹机制
  13. [CLR via C#]5.3 值类型的装箱和拆箱
  14. [TensorFlow] Basic Usage
  15. Linux部分命令及通配符用法
  16. Struts2 (三)
  17. MySQL优化(2)--------常用优化
  18. JXNU暑期选拔赛
  19. goreplay 输出流量捕获数据到 elasticsearch
  20. JVM(三)JVM的ClassLoader类加载器

热门文章

  1. Java破解图片防盗链
  2. Linux查看系统、核数、CPU、位数
  3. scala读取配置文件
  4. javascript 常见数组操作( 1、数组整体元素修改 2、 数组筛选 3、jquery 元素转数组 4、获取两个数组中相同部分或者不同部分 5、数组去重并倒序排序 6、数组排序 7、数组截取slice 8、数组插入、删除splice(需明确位置) 9、数组遍历 10、jQuery根据元素值删除数组元素的方)
  5. 前端打包成桌面应用、以及chrome扩展
  6. Linux驱动模块编译模板
  7. 设计模式总结篇系列:适配器模式(Adapter)
  8. VS 2015 GIT操作使用说明
  9. Java多线程概念简介 多线程中篇(一)
  10. springboot情操陶冶-jmx解析