
网络
文章平均质量分 84
虎皮猫大人王
这个作者很懒,什么都没留下…
展开
-
Android下,判断网线是否插入的方法
1.通过调用命令:cat /sys/class/net/eth0/carrier2.通过代码:private boolean haveInternet(){ boolean result = false; ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_...原创 2018-02-26 18:13:19 · 3226 阅读 · 0 评论 -
wireshark会把网卡变为混杂模式
一般情况下,网卡是工作在正常模式下,会只过滤自己mac的包。当使用wireshark抓包时,会把网卡变为混杂模式,这时所有的mac包都被抓上来。原创 2013-07-01 13:48:52 · 7855 阅读 · 0 评论 -
linux c学习笔记----UDP基础客户/服务编程(sendto,recvfrom)
转载地址:http://lobert.iteye.com/blog/1769618sendto(经socket传送数据)相关函数send , sendmsg,recv , recvfrom , socket表头文件#include #include 定义函数int sendto ( int s , const void * msg,转载 2013-06-24 11:56:27 · 1231 阅读 · 0 评论 -
netmap 小结
netmap:高性能的应用层收发包框架。netmap可以直接在userland下实现完整的网络协议栈,可以绕过一些不必要的上下文切换和不需要的协议开销;netmap提供一种让用户程序以一致的接口直接访问网卡(收发包 zero copy)的方法;netmap用到的性能提高技术:1. 内存映射2. 批处理3. 环形缓冲区队列netmap解决的三个问题:1. 减少转载 2013-05-15 16:37:48 · 2239 阅读 · 0 评论 -
linux内核sk_buff的结构分析
转载地址:http://simohayha.iteye.com/blog/556168我看的内核版本是2.6.32. 在内核中sk_buff表示一个网络数据包,它是一个双向链表,而链表头就是sk_buff_head,在老的内核里面sk_buff会有一个list域直接指向sk_buff_head也就是链表头,现在在2.6.32里面这个域已经被删除了。 而sk_buff的内存布局可原创 2013-02-27 13:43:59 · 506 阅读 · 0 评论 -
ubuntu 设置IP,设置网关
转载:http://blog.youkuaiyun.com/happyjiang2009/article/details/5730017本文系转载,介绍Ubuntu如何设置IP和网络来连接网络如果是在虚拟机中使用Ubuntu,那么设置之前请先参照我的上一遍文章虚拟机Net方式设置连接外网 中的网络设置部分,先设置好主机的网络,然后配置虚拟机Ubuntu的IP和网关 如果主机原创 2013-02-05 14:20:01 · 962 阅读 · 0 评论 -
MTU 检测和设置
转载地址:http://blog.youkuaiyun.com/zhoujunyi/article/details/1575585 MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包。MTU的单位是字节。 大部分网络设备都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把原创 2013-02-05 12:02:11 · 881 阅读 · 0 评论 -
netperf和iperf网络性能监控工具
转载地址:http://qa.blog.163.com/blog/static/1901470022011102543322445/iperf netperf UDPmon 都是测量网络性能的开源软件,iperf是伊利诺斯大学的超级计算机应用程序国家中心(NCSA)开发的,和IE是同根生,netperf是HP的,UDPmon是英国曼切斯特大学的产物。本文主要演示、介绍两个工具的使用方法原创 2013-01-16 11:44:00 · 12412 阅读 · 1 评论 -
pktgen的安装与使用
转载地址:http://ocelot1985-163-com.iteye.com/blog/981992pktgen的安装与使用系统环境:fefora core 12 如果你和我一样,在pktgen面前是个新人。是不是也曾遇到下面的问题: (1)以为pktgen和tcpdump一样是Linux下的工具软件; (2)后来,明白了pktgen不是工具,而是内核模块,但是原创 2013-01-16 11:43:26 · 1710 阅读 · 0 评论 -
linux ip 命令
转载地址:百度基本上,ip命令就是整合了 ifconfig 与 route 这两个指令。不过, ip 可以达成的功能却更多! 如果您有兴趣的话,请自行 vi /sbin/ifup ,就知道整个 ifup 就是利用 ip 这个指令来达成的。[root@linux ~]# ip [option] [动作] [指令]参数:option :设定的参数,主要有:-s :显示出该装置的统计原创 2013-01-08 15:01:42 · 481 阅读 · 0 评论 -
linux下检测网线插拔(三)
方法三,用的文件方式#include #include #include int main(void){unsigned char buf[4],buffer[4];FILE *fp;int fd;int i;FILE f;memset(buffer, 0, sizeof(buffer));memset(buffer, 0, sizeof(buf))原创 2011-11-29 09:33:45 · 1496 阅读 · 0 评论 -
linux下实现USB口的热插拔
目前要做一个在嵌入式平台上的USB口的热插拔事件。 经过我现在的分析总结目前有如下方法: 1,定时检查/proc/scsi/scsi文件 此方法只能在PC上,但在嵌入式平台上不可用。 2,netlink方式 使用netlink.#include #include #include #i原创 2011-12-09 17:08:08 · 1886 阅读 · 0 评论 -
linux下检测网线插拔(二)
此的ifconfig eth0检测#include #include #include #include int GetNetStat(){char buffer[BUFSIZ];FILE *read_fp;int chars_read;int ret;memset(buffer, 0, BUFSIZ);read_fp = popen("原创 2011-11-29 09:30:42 · 1747 阅读 · 0 评论 -
linux下如何检测网线是否插拔(一)
linux下检测网线插拔一般使用方法有一种,ioctrl.但是在嵌入式linux中,有时候不管用.linux标准做法.#include #include #include #include #include #include #include #include #include #include #include int get_netlin原创 2011-11-29 09:28:01 · 6036 阅读 · 0 评论 -
linux下,如何检测USB口热插拔事件。
最近在做嵌入式板上的USB插拔检测。当有设备插入时,系统能够提示此设备是什么设备。在网上查了查,大部分都说用udev可以实现。目前我在嵌入式平台上用udev代码检测,发现没有此功能。为了不影响开发进度,我就用解析文件的方式来实现。此工作极其麻烦,生成了很多临时文件。关于如何使用标准办法,继续关注中。原创 2011-11-27 18:34:40 · 5471 阅读 · 0 评论 -
信号集操作函数
一、信号集sigset_t 类型其实是个结构体,定义在 /usr/include/bits/sigset.h 头文件中:?1234typedef__sigset_t sigset_t typedefstruct { unsignedlongint __v原创 2012-12-28 09:10:18 · 1179 阅读 · 0 评论 -
select 和pselect的区别
/* According to POSIX 1003.1-2001 */ #include sys/select.h>/* According to earlier standards */ #include sys/time.h> #include sys/types.h> #include unistd.h>int select(int n, fd_set原创 2012-12-28 08:58:17 · 1228 阅读 · 1 评论 -
connect 是 errno 为111 115 101 22 错误分析
22:参数错误,比如ip地址不合法,没有目标端口等101:网络不可达,比如不能ping通111:链接被拒绝,比如目标关闭链接等115:当链接设置为非阻塞时,目标没有及时应答,返回此错误,socket可以继续使用 附录:Linux的错误码表(errno table)_ 124 EMEDIUMTYPE_ Wrong medium type_ 123 ENOMEDIUM__转载 2013-12-19 09:49:55 · 6523 阅读 · 0 评论 -
非阻塞connect()
说明:本文适用于Windows平台,后面追加一篇适用于Linux平台的转自:http://www.cnblogs.com/shiqgfmj/archive/2010/12/29/1919434.html 非阻塞的socket客户端connect()困扰了一下午。因为是非阻塞,不管是否连接上都直接返回,所以就无法知道什么时候连接上。一开始想到网上找资料,可惜不多。于是MSDN,总算找转载 2013-12-19 19:13:24 · 938 阅读 · 0 评论 -
面向连接的socket数据处理过程以及非阻塞connect问题
对于面向连接的socket类型(SOCK_STREAM,SOCK_SEQPACKET)在读写数据之前必须建立连接,首先服务器端socket必须在一个客户端知道的地址进行监听,也就是创建socket之后必须调用bind绑定到一个指定的地址,然后调用int listen(int sockfd, int backlog);进行监听。此时服务器socket允许客户端进行连接,backlog提示没被ac转载 2013-12-23 08:41:10 · 1107 阅读 · 0 评论 -
电磁兼容性(EMC)
电磁兼容性(EMC)是指设备或系统在其电磁环境中符合要求运行并不对其环境中的任何设备产生无法忍受的电磁干扰的能力。因此,EMC包括两个方面的要求:一方面是指设备在正常运行过程中对所在环境产生的电磁干扰不能超过一定的限值;另一方面是指器具对所在环境中存在的电磁干扰具有一定程度的抗扰度,即电磁敏感性。 所谓电磁干扰是指任何能使设备或系统性能降级的电磁现象。而所谓电磁干扰是指因电磁干扰而引起的设备或转载 2014-07-27 12:50:37 · 1709 阅读 · 0 评论 -
TCP异常终止(reset报文)
TCP异常终止(reset报文)TCP的异常终止是相对于正常释放TCP连接的过程而言的,我们都知道,TCP连接的建立是通过三次握手完成的,而TCP正常释放连接是通过四次挥手来完成,但是有些情况下,TCP在交互的过程中会出现一些意想不到的情况,导致TCP无法按照正常的四次挥手来释放连接,如果此时不通过其他的方式来释放TCP连接的话,这个TCP连接将会一直存在,占用系统的部分资源。在这种情况下,我转载 2014-02-20 16:24:43 · 1389 阅读 · 0 评论 -
几种TCP连接中出现RST的情况
目录[-]1 端口未打开2 请求超时3 提前关闭4 在一个已关闭的socket上收到数据总结参考文献:应该没有人会质疑,现在是一个网络时代了。应该不少程序员在编程中需要考虑多机、局域网、广域网的各种问题。所以网络知识也是避免不了学习的。而且笔者一直觉得TCP/IP网络知识在一个程序员知识体系中必需占有一席之地的。在TCP协议中RST表示复位,转载 2014-02-19 16:46:22 · 1129 阅读 · 0 评论 -
TCP Fast Open
TFO[1]是Linux 内核3.6版本引入的新特性,相关标准由Google提出,仍旧是RFC的草案[2],非正式标准。作者是Yuchung Cheng,Google工程师,他从加州大学圣迭戈分校获得博士学位,从国立台湾大学[3](NTU,新加坡也有一个NTU[4],美国好像也有一个)获得学士学位,简单说明:客户端通过TCP连接到服务器时,可以在SYN报文携带数据,这将提升TCP的效率(4转载 2013-12-23 18:15:43 · 1104 阅读 · 0 评论 -
Linux内核3.7 TCP Fast Open验证实例
Linux内核在3.6和3.7合入了TCP Fast Open特性,在3.7.3版本上验证了一下,I did it!以下是C语言实例(LWN介绍):server端代码:[cpp] view plaincopyprint?#include #include /* See NOTES */ #include #include i转载 2013-12-23 18:14:00 · 1646 阅读 · 0 评论 -
细说Cookies
什么是Cookies?Cookies是一些小文件,它们被创建在客户端的系统里,或者被创建在客户端浏览器的内存中(如果是临时性的话)。用它可以实现状态管理的功能。我们可以存储一些少量信息到可以短的系统上,以便在需要的时候使用。最有趣的事情是,它是对用户透明的。在你的web应用程序中,你可以到处使用它,它极其得简单。Cookies是以文本形式存储的。如果一个web应用程序使用cookies,那么服转载 2013-12-23 18:00:38 · 735 阅读 · 0 评论 -
vlc播放rtp的h264流和MPEG2-TS流所使用的sdp文件(转)
h264: [cpp] view plaincopym=video 9200 RTP/AVP 96 a=rtpmap:96 H264/90000 a=fmtp:96 packetization-mode=1;profile-level-id=42001E MPEG2-TS: [cpp] vi转载 2013-12-22 11:30:25 · 4911 阅读 · 0 评论 -
局域网SOCKET通信(TCP)需要心跳包来保持长连接么
偶然看到,免得忘了,拿来主义,知道结果即可,不追究链接如下,在第7楼http://cache.baidu.com/c?m=9d78d513d98510ed4fece4697c66c0171b4381132ba6d3020ca58438e5732d405321a3e52878564291d27d141cb20c19afe73605705862eade9fc85dd原创 2012-12-14 15:30:35 · 1286 阅读 · 0 评论 -
html与php之间的关系
我现在是门外汉,只是记录.html是用来做网页的表现层的,也就说你可以看到的。如字体、链接,图片等。php是用来处理逻辑层的,也就是你要网页提供什么功能,完成什么动作。如查询数据,计算利息,生成图表等。php代码是嵌入html中的。所以学什么之间是没有冲突的,关键是你是负责界面设计的还是负责数据处理的,你学php最好要有html的知识,其实html很容易学的了。你可以先原创 2012-12-12 13:55:05 · 19547 阅读 · 0 评论 -
Linux内核学习之网络设备
字符设备、块设备、网络设备是linux中对设备的三种分类。字符设备、块设备在/dev下是有设备节点的,而块设备是没有的。对块设备的操作是通过一种叫socket的API进行的,这些操作包括了收包(读)、发包(写)、设置IP地址等等(IOCTL)。• 网络设备的注册分配net_device空间,该数据类型表示一个网络设备struct net_device *alloc_netdev(int原创 2012-12-10 13:59:22 · 1551 阅读 · 1 评论 -
epoll服务器示例, 监听5000个端口, 使用线程池
运行这个程序需要预先设置栈内存和文件描述符上限, 否则运行失败ulimit -n 16384ulimit -s 4096文件名:server.c编译: gcc server.c -Wall -O2 -pthread -o server程序源码如下(请自行编辑宏定义SERVER_IP为自己的IP):/*Linux 2.6 x86_64 only*/#inc转载 2012-04-11 21:08:56 · 1124 阅读 · 0 评论 -
多线程编程(一):线程创建和退出
一、引言二、实例以下实例中创建了2个线程,其中第一个线程是在程序运行到中途时调用pthread_exit函数退出,第二个正常退出。在主线程中,收集这两个线程的退出信息,并释放资源。从实例可以看出,这两个线程是并发运行的。[cpp] view plaincopy/*thread.c*/ #include #include void threa转载 2012-04-11 21:22:11 · 453 阅读 · 0 评论 -
linux socket网络编程:fcntl select(多个客户端连接服务器端情形)
一、引言 在实际情况中,人们往往遇到多个客户端连接服务器端的情况。由于之前介绍的函数如connect,recv,send等都是阻塞性函数,若资源没有充分准备好,则调用该函数的进程将进入睡眠状态,这样就无法处理I/O多路复用的情况了。 本文给出两种I/O多路复用的方法:fcntl(),select()。可以看到,由于Linux中把socket当作一种特殊的文件描述符,这给用户的处转载 2012-04-11 21:16:16 · 833 阅读 · 0 评论 -
epoll多线程
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define THREAD_MAX 128#define LISTEN_MAX 5000#define SE原创 2012-04-11 21:11:16 · 2990 阅读 · 0 评论 -
epoll使用
epoll使用 epoll的工作原理是,你如果想进行IO操作时,先向epoll查询是否可读或可写,如果处于可读或可写状态后,epoll会通过epoll_wait函数通知你,此时你再进行进一步的recv或send操作。 epoll仅仅是一个异步事件的通知机制,其本身并不作任何的IO读写操作,它只负责告诉你是不是可以读或可以写了,而具体的读写操作,还要应用层自己转载 2012-04-10 19:53:17 · 520 阅读 · 0 评论 -
单播、广播、组播介绍
推荐一个介绍单播/组播/广播等协议比较详细得网站,其中这个西安的公司主要是做组播的,认为组播是第4代流媒体协议。http://www.mvn.cn/index.htm 单播/组播/广播 通讯协议的特点及应用对比当前的网络中有三种通讯模式:单播、广播、组播,其中的组播出现时间最晚但同时具备单播和广播的优点,最具有发展前景。 一、单播: 主机之间“一对一”的通讯模式,原创 2012-02-22 09:07:10 · 532 阅读 · 0 评论 -
wget下载
wget -r http://place.your.url/here 这个命令会按照递归的方法,下载服务器上所有的目录和文件,实质就是下载整个网站。这个命令一定要小心使用,因为在下载的时候,被下载网站指向的所有地址同样会被下载,因此,如果这个网站引用了其他网站,那么被引用的网站也会被下载下来!基于这个原因,这个参数不常用。 可以用-l number参数来指定下载的层次。例如只下载两层,原创 2012-02-17 13:09:26 · 439 阅读 · 0 评论 -
wget 用法
服务器;对安全强度很高的系统而言,一般不会将自己的系统直接暴露在互 联网上,所以,支持代理是下载软件必须有的功能; (4)设置方便简单;可能,习惯图形界面的用户已经不是太习惯命令行了,但是,命令行在设置 上其实有更多的优点,最少,鼠标可以少点很多次,也不要担心是否错点鼠标; (5)程序小,完全免费;程序小可以考虑不计,因为现在的硬盘实在 太大了;完全免费就不得不考虑了,即使网络上有很多原创 2012-02-17 13:07:44 · 646 阅读 · 0 评论 -
如何创建一个执行FTP的批处理文件
1、先创建一个文本文件,把登录明、密码和你要执行的操作写进去:2222233333asciiget DosFtpFile.txtquit其中第一行是用户名,第二行是密码,最后一行是退出命令。然后保存这个文件,假设文件名是sss.ftp2、创建bat文件,这个文件只有一行:ftp -s:sss.ftp ftp.myserver.com其中sss.ftp是你第一原创 2012-02-17 13:14:14 · 955 阅读 · 0 评论 -
http协议与web本质
当你在浏览器地址栏敲入“http://www.youkuaiyun.com/”,然后猛按回车,呈现在你面前的,将是csdn的首页了(这真是废话,你会认为这是理所当然的)。作为一个开发者,尤其是web开发人员,我想你有必要去了解这一系列的处理流程,在这期间,浏览器和服务器到底是如何打交道的?服务器又是如何处理的?浏览器又是如何将网页显示给用户的呢?......疑惑和细节真是太多了。坦白讲,要想彻彻底底的原创 2012-02-17 13:11:56 · 414 阅读 · 0 评论