51CTO博客开发
随意抓的一个HTTP包,以做参考代码分析:int read_header(request * req) { int bytes, buf_bytes_left; char *check, *buffer; /* client_stream:是用来装HTTP数据报文的buffer。 parse_pos:已经解析字符数。 client_stream_po
shell脚本能够很好的让系统配置自动化,但是shell本身不能保密,也就是任何人都能看到你的shell程序。但是通过C语言实现,编译为二进制将很好的避免这个问题。typedef int (* MAINFUN_T)(int ,char*[]); typedef struct funitem{ int id; char *name; MAINFUN_T fun; }FUNIT
知识点:shell脚本,TC应用,iptables应用#!/bin/sh #copyright by zhoutao0712 echo -e '\n export UIP="192.168.1."\n export NET="192.168.1.0/24"\n export UP=40\n export DOWN=170\n export U
我们从一张图开始。我们可以看到iptable一共有4个表,5条链。4个表分别为raw mangle nat filter(按优先级排序)raw:表用于处理异常,它具有2个内建链mangle:修改数据包的TOS TTL MARKnat:修改源IP和目的IPfilter:用于数据包过滤从图中可以看出raw 包含 PREROUTING 和 OUTPUT 2条链mangle 包含 PREROUTING I
TC:用语流量控制的工具。原则:控发包,不控收包。队列:决定数据被发送的方式。无类队列(对所有数据一视同仁,不加区分,适合比较低级的流量控制)fifo_fast:传统发包方式。TBF:令牌桶 有点像小时候我们做的一道应用题,一个池子一边放水,一般进水,当进水速度不够时,出水速度也就被限制了。SFQ:随机公平队列 每一个会话,轮流公平发包,不至于出现某个网络进程独占网络的情况。分类队列规定(可以对包
关于变量的几个问题:1、shell编程由于和命令行有莫大的关系,所以对空格等字符比较敏感。2、定义变量 value=xx 而不能像 value = xx 这样出现空格。3、通过 export value 可以将value变成环境变量,使其子进程也可以使用该变量。4、环境变量多为大写,普通变量为小写5、一般通过 value = $(shell 命令) 将输出结果赋值给value6、$#代表参数个数,
花了一下午时间,把openWrt系统配置的大概示意图画了出来。
进入package目录下,新建目录my_netcat。编写如下Makefileinclude $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=netcat //软件名字 PKG_RELEASE:=1 //当前Makefile版本 PKG_SOURCE_URL:= http://sourceforge.net/project
TCP粘包,通常是指客户端无法正确的区分数据内容所存在的问题。TCP自身本来就是面向流的协议,流就像河流中的水,本身是不存在单个的说法的。char *buf="hello,I want an apple"; char *buf1="hello,I want an pear"; while(1) { if(write(confd,buf,strlen(buf))==-1)
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号