网络编程
qiaoliang328
这个作者很懒,什么都没留下…
展开
-
禁止电脑访问某些网站——比如检测licence 的网站
方法1:修改hosts文件:文件位于:C:\Windows\System32\drivers\etc,如果没有新建一个在hosts文件中增加一行:127.0.0.1 www.163.com这样电脑就无法访问 www.163.com 了。原创 2021-04-11 16:08:47 · 2307 阅读 · 0 评论 -
linux进程/线程调度策略(SCHED_OTHER,SCHED_FIFO,SCHED_RR)
linux内核的三种调度策略:SCHED_OTHER 分时调度策略,(默认的) SCHED_FIFO实时调度策略,先到先服务 SCHED_RR实时调度策略,时间片轮转 实时进程将得到优先调用,实时进程根据实时优先级决定调度权值,分时进程则通过nice和counter值决定权值,nice越小,counter越大,被调度的概率越大,也就是曾经使用了cpu最少的进程将会得到优先调度。SHCED_RR和SCHED_FIFO的不同: 当采用SHCED_RR策略的进程的时...转载 2020-11-10 17:55:19 · 3446 阅读 · 0 评论 -
sendn recvn
前言:本博客仅仅作为sendn recvn 的笔记,需要配合其它源码才能编译通过;/** fn: 往socket 发送len 个字节,直到发送完毕或者出错才返回* 返回值: 0, 标识成功, -1, 标识失败* 特别注意: 这个sendn 的封装返回值根一般的send 的返回值不一样,*/int Sendn( int socket, const void *buf, uint len ){ int ret = -1; uint leftLen = len; uint ...原创 2020-05-09 10:02:45 · 461 阅读 · 0 评论 -
nemesi 编译
[root@bogon libnemesi-0.6.4-rc2]# ./configure出现:hecking for LIBNETEMBRYO... configure: error: Package requirements (libnetembryo >= 0.0.4) were not met:No package 'libnetembryo' foundC原创 2013-09-16 10:27:54 · 1273 阅读 · 0 评论 -
linux下发送广播
关键字:linux 广播 255.255.255.255 sendto error: Network is unreachable 全网广播场景: 今天调试linux 网络编程的广播,当向255.255.255.255 的某个端口发送广播包的时候,sendto 返回 -1,错误原因是:sendto erro原创 2013-05-03 18:46:37 · 5712 阅读 · 0 评论 -
编译ez-ipupdate 出错解决方法
错误:gcc -g -O2 -o ez-ipupdate ez-ipupdate.o conf_file.o md5.o cache_file.o pid_file.o /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in conf_fil原创 2012-12-03 17:32:38 · 1601 阅读 · 0 评论 -
TCP 、UDP、IP包的最大长度是多少?
传输层: 对于UDP协议来说,整个包的最大长度为65535,其中包头长度是65535-20=65515; 对于TCP协议来说,整个包的最大长度是由最大传输大小(MSS,Maxitum Segment Size)决定,MSS就是TCP数据包每次能够传 输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替转载 2012-05-18 16:32:06 · 58935 阅读 · 0 评论 -
LINUX 下tcp 和 udp 套接字收发缓冲区的大小决定规则
1. tcp 收发缓冲区默认值 [root@qljt core]# cat /proc/sys/net/ipv4/tcp_rmem 4096 87380 416153687380 :tcp接收缓冲区的默认值 [root@qljt core]# cat /proc/sys/net/ipv4/tcp_wmem 4096 16384 416153616原创 2012-05-18 16:02:17 · 10034 阅读 · 1 评论 -
linux下编程遇到的一个疑难杂症——野指针所带来的害处
场景: 一段代码,单进程多线程模式,除了main线程还有很多个子线程,里面大量地使用了指针,代码编译没有任何的warning和error;程序跑起来后一切正常,并和另外一个程序通过socket 网络通信,也一切正常;所有的子线程退出也正常;所有类的析构函数析构的时候也正常。但是:就在main进程销毁(或者通过exit(0))退出的时候,操作系统就提示以下错误:*** glibc原创 2012-04-12 14:15:50 · 7209 阅读 · 0 评论 -
Interrupted system call
关键字: gdb epoll_wait select sem_wat 我们在利用 gdb 调试带有 epoll_wait select sem_wat 的多线程代码的时候可能会出现非正常返回 -1 的情况,错误原因是:Interrupted system call。这是由于gdb调试的时候会在断点处插入一条中断指令,当程序执行到该断点处的时候会发送一个SIGTRAP信原创 2012-03-28 18:20:23 · 19259 阅读 · 1 评论 -
透明路由
Transparent RoutersThere are two basic models for interconnecting local-area networks and wide-area (or long-haul) networks in theInternet. In the first, the local-area network is assigned a转载 2013-10-12 09:30:44 · 2545 阅读 · 0 评论 -
linux 下怎样查看网卡是否支持混杂(promisc)模式
1,未设置支持promisc[root@bogon libpcap-1.3.0]# ifconfig eth0eth0: flags=4163 mtu 1500 inet 192.168.1.18 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::20c:29ff:fe90:90e9原创 2013-10-14 14:14:27 · 10830 阅读 · 1 评论 -
编译stuntd 的时候出错信息+解决方法
1. error: libipq.h: No such file or directory一开始以为没有安装libipq 库,所以baidu 搜libipq,但是搜了很久都下载不到 libipq 的源码,最后解决:yum install iptables-devel然后到 /usr/include 下[root@localhost include]# find ./ -原创 2013-12-15 16:09:17 · 1442 阅读 · 0 评论 -
rtsp 客户端请求视频的时候支持输入用户名和密码的格式
关键字:rtsp url 用户名 密码 user passwordrtsp://[[:]@][:][/]"原创 2014-03-14 09:04:31 · 21354 阅读 · 7 评论 -
本人对RTP、RTCP、RTSP这三个协议的实现的宏观理解
公司要求实现一个视频流媒体传输的平滑功能: 视频服务器向客户端传输实时视频流的时候,由于I帧的大小可能比P帧大几倍,(一般来说每50帧就会出现一个I帧),这样当从传输P帧转到传输I帧是,那一刻的码率突然间增大,这样会造成网络堵塞。流平滑处理就是要解决这个问题。在解决这个问题的过程中一般会用到RTP、RTCP、RSTP这三个协议,网上对这三个东西的文档实在太多了,而且介绍这三个东西的时候总是原创 2009-11-05 17:48:00 · 1747 阅读 · 1 评论 -
ios调用unix 网络编程的socket 接口实行UDP通信, 锁屏后解屏会闪退的解决方法
原因:IOS 锁屏,然后解屏后,会发出一个SIGPIPE 信号,大家都知道,系统默认收到该信号,进程退出的。解决:方法1:signal( SIGPIPE, SIG_IGN ); 该方法不知道为什么,在IOS 真机下跑,无法捕捉SIGPIPE;方法2:setsockopt( nSocket, SOL_SOCKET, SO_NOSIGPIPE, (void *)&set, size原创 2016-06-30 21:14:14 · 1310 阅读 · 0 评论 -
UDP丢包原因
UDP 丢包的原因和改善转载 2016-07-18 19:19:24 · 2621 阅读 · 0 评论 -
组播IP地址与组播MAC地址之间的换算方法与例子
组播IP地址与组播MAC地址之间的换算方法与例子1个oui 有2 的24方个MAC地址组播地址 :2的28次方,224.0.0.0-239.255.255.255可用组播范围:0100.5E00.0000----0100.5E7F.FFFFMAC由48bit组成:前24位是OUI ,后24位由厂商定义共需要:16个OUI才可以与一个IP来一一对应。转载 2016-06-23 16:16:27 · 2947 阅读 · 0 评论 -
P2P NAT检测和穿越方式以及两者之间的关系
附加的话:P2P 是否能够打通请查看最后的表 一、 NAT类型本文转自:http://www.cnblogs.com/hummersofdie/archive/2013/05/21/3090163.html 1、基本的NAT类型:只转发IP,不转发端口;tips:一个基本NAT往往需要具有多个公网IP来满足多个内网节点中具有相同端口的应用程序的同时访问。由转载 2017-05-25 18:12:59 · 408 阅读 · 0 评论 -
tcpdump 的经典用法
这几天需要在海思的板子上抓包,板子上就是嵌入式了,没多少资源,所有需要尽可能过滤无用的包,自己倒腾着,搞到了如下指令/nfsroot/linuxtools/tcpdump3518 -s 0 -i wlan0 tcp and not port 23 and ip dst 192.168.1.100 -w ./qljt-12.cap解析:1./nfsroot/linuxtools/tcp原创 2017-05-17 15:27:10 · 644 阅读 · 0 评论 -
信号量 互斥锁 条件变量的区别
信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在哪里)。而互斥锁是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以转载 2011-08-05 10:28:42 · 2010 阅读 · 2 评论 -
VMWare克隆或复制Linux虚拟机后eth0找不到的解决方案
<br />关键字: eth0 虚拟机 vmware 现象描述: 最近装了虚拟机系统是 fedora9,为了以后使用方便对虚拟机进行克隆或复制。当使用克隆后的虚拟机时发现原来在基本系统中的网卡eth0到了新系统却没有了,使用ifconfig -a会发现只有eth1。因为基本系统的网络相关配置都是基于eth0的,eth1没有网络相关的配置,此时要正常该虚拟机中的网络,只有添加eth1的网络配置,这样每次都要修改网卡配置在做多Linux系统测试的时候很不方便。更进一步,如果基于此克隆虚拟机继续克隆或复制新的虚拟转载 2011-04-07 10:27:00 · 1688 阅读 · 0 评论 -
RedHat9 IPV6 [转]
以RedHat9.0为例,系统默认的内核版本为2.4.20-8,已经自带了IPv6这个模块,配置过程如下: 以root用户登录(以下举例中的命令对大小写敏感) 1.加载ipv6模块 运行命令insmod ipv6或者modprobe ipv6,然后用命令lsmod可以查看系统已加载的模块列表,如果看到ipv6,则表示模块已经加原创 2009-10-10 12:02:00 · 981 阅读 · 0 评论 -
网速是什么意思?带宽是什么意思?1M网速的下载速度应是多少?[转.baidu]
揭开ADSL真正速度之谜 经常使用ADSL的用户,你知道ADSL的真正速度吗?带着这个疑问我们将问题一步一步展开。 很多用户反映, ADSL下载速率并没有达到标称的512K,电脑通过ADSL接入网络后,下载时会出现一个下载速率指示条,上面显示的下载速率一般为50KByte/s 左右!这其实是个换算关系不清引起的误解。 1,512KADSL是什么意思?原创 2009-10-10 14:09:00 · 4919 阅读 · 0 评论 -
产生RST包的各种原因
1.connect一个不存在的端口2.send一个已经关掉的连接3.send一个已经死掉的连接4.设置SO_LINGER选项5.果close一个接收缓冲区中还有数据的连接,会给对方发一个RST6.被gfw断定为不和谐信息(这个不大明白) 文章出处:DIY部落(http://www.diybl.com/course/3_program/c++/cppjs/2008617/126012.html)转载 2009-10-08 15:57:00 · 5171 阅读 · 0 评论 -
netstat Send-Q Recv-Q
Send-Q 对方没有收到的数据或者说没有Ack的,还是本地缓冲区. Recv-Q 数据已经在本地接收缓冲,但是还没有recv().原创 2009-09-28 11:33:00 · 3191 阅读 · 0 评论 -
TCPDUMP交叉编译
下面介绍一下具体过程。1.在http://www.tcpdump.org下载libpcap-1.0.0.tar.gz和tcpdump-4.0.0.tar.gz两个文件。2.将这两个文件放在/home下解压。3.编译,安装libpcap-1.0.0: (1)进入libpcap目录,打开configure。将下面两端代码注释掉 #if test -z "$with_pcap" && t转载 2009-09-25 14:07:00 · 9929 阅读 · 1 评论 -
怎样用TCPDUMP工具来跟踪TCP的3路握手
上图是用抓包工具抓到的TCP三路握手包,这就是TCP的三次握手,上面有五个TCP三次握手,分别用四条红线隔开。 我们拿第一个三次握手来举例: 1.首先由192.16810.175的4885端口发一个[SYN]给192.168.10.56的9877端口; 2.192.168.10.56收到[SYN]以后,从]的9877端口返回一个[SYN,ACK]给192.168.10.17原创 2009-09-25 14:54:00 · 2068 阅读 · 0 评论 -
TCPDUMP中文手册最详细的手册
名称(NAME)tcpdump-转储网络上的数据流总览(SYNOPSIS)tcpdump[-adeflnNOpqStvx][-ccount][-Ffile][-iinterface][-rfile][-ssnaplen][-Ttype][-wfile][expression]描述(DESCRIPTION)Tcpdump打印出在某个网络界面上,匹配布尔表达式expression的报头.对于SunOS转载 2009-09-25 13:54:00 · 1282 阅读 · 0 评论 -
UNP学习过程中的困惑——不断更新中
1.从抓包的角度来看,echo客户端程序的每次readline以后都会发一个ACK包给服务器,但是在程序厘米却表现不出来。 2.服务器是个迸发服务器,不知道是不是由于NFS运行客户端程序,所以当kill掉了客户端程序以后再启动,在服务器段用ps命令却看不到 子进程,但功能仍旧一切正常。原创 2009-09-28 00:56:00 · 634 阅读 · 0 评论 -
什么是时间戳[转]
时间戳是一个具有法律效力的电子凭证,是各种类型的电子文件(数据电文)在时间、权属及内容完整性方面的证明。时间戳能证明你在什么时间拥有一个什么样的电子文件(数据电文)。 时间戳能证明你在什么时间拥有一个什么样的电子文件(数据电文)。主要用在商业秘密保护、工作文档的责任认定、著作权保护、原创作品、软件代码、发明专利、学术论文、试验数据、电子单据等方面。 时间戳的颁发,必须要由一个原创 2009-10-10 15:41:00 · 953 阅读 · 0 评论 -
xml
http://www.w3.org/TR/REC-html40/loose.dtd">.zf { font-size : small; background-color : #fffbc0; border-style : solid; border-color : #fff949; border-width : 1px; color : #0d039c; }转载 2009-10-15 17:28:00 · 3781 阅读 · 2 评论 -
tcpdump使用详解
tcpdump采用命令行方式,它的命令格式为: tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ] [ -i 网络接口 ] [ -r 文件名] [ -s snaplen ] [ -T 类型 ] [ -w 文件名 ] [表达式 ] 1. tcpdump的选项介绍 -a 将网络地址和广播地址转变成转载 2009-10-23 12:07:00 · 1412 阅读 · 0 评论 -
linux socket 编程 send 发生 Resource temporarily unavailable 错误的原因
<br />1. 把TCP设置成非阻塞.<br />2. TCP发送缓冲区不够,一次要发很大的数据。原创 2011-03-28 19:49:00 · 10388 阅读 · 0 评论 -
LINUX socket 在connect的时候发生 Operation now in progress 错误
<br />解决方法:<br /> <br />unsigned long ul = 1;<br /> ioctl( nSocket, FIONBIO, &ul ); //设置为非阻塞模式 <br /> <br />放到connect()后面.原创 2011-03-28 23:58:00 · 18492 阅读 · 3 评论 -
什么是长连接,什么是短连接?
什么是长连接,什么是短连接?贴个经典的,看完了就应该没啥问题了 :TCP/IP通信程序设计的丰富多样性 刚接触TCP/IP通信设计的人根据范例可以很快编出一个通信程 序,据此一些人可能会认为TCP/IP编程很简单。其实不然, TCP/IP编程具有较为丰富的内容。其编程的丰富性主要体现在 通信方式和报文格式的多样性上。 一。通信方式 主要有以下三大类: (一)SERVER/CLIENT方式 1转载 2009-11-17 17:13:00 · 798 阅读 · 0 评论 -
IP地址和MAC地址的区别与联系
如果你是通过校园网或小区接入Internet,那么一定听说过MAC地址。什么是MAC地址,MAC地址在这种局域 网环境中究竟起到什么作用?下面就来介绍一下MAC地址的知识,MAC地址和IP地址的区别以及MAC地址在实际应用中所涉及到的安全问题。 一、基础知识 如今的网络是分层来实现的,就像是搭积木一样,先设计某个特定功能的模块,然后把模块拼起来组成整个网络。局域网也不例外,一般来说,在组网上我们使转载 2009-10-31 11:53:00 · 1623 阅读 · 0 评论 -
单播、多播、广播、任播的概念
单播、多播、广播、任播的概念 單播是指封包在計算機網絡的傳輸中,目的地址為單一目標的一種傳輸方式,英文為unicast。它是現今網絡應用最為廣泛,通常所使用的網絡協議或服務大多采用單播傳輸,例如一切基于TCP的協議。【单播特點】每次只有兩個實體相互通信,發送端和接收端都是唯一確定的。【单播地址】在IPv4網絡中,0.0.0.0到223.255.255.255屬转载 2009-10-31 08:46:00 · 2087 阅读 · 0 评论 -
AF_UNSPEC、AF_INET和AF_INET6之间的关系
ai_family参数指定调用者期待返回的套接口地址结构的类型。它的值包括三种:AF_INET,AF_INET6和AF_UNSPEC。如果指定AF_INET,那么函数九不能返回任何IPV6相关的地址信息;如果仅指定了AF_INET6,则就不能返回任何IPV4地址信息。AF_UNSPEC则意味着函数返回的是适用于指定主机名和服务名且适合任何协议族的地址。如果某个主机既有AAAA记录(IPV6)地址,转载 2009-10-26 16:39:00 · 44607 阅读 · 1 评论 -
AF_INET 和PF_INET区别;AF_LOCAL PF_LOCAL 区别
AF_INET 和PF_INET区别;AF_LOCAL PF_LOCAL 区别2008-12-18 14:34AF 表示ADDRESS FAMILY 地址族 PF 表示PROTOCL FAMILY 协议族Winsock2.h中#define AF_INET 0#define PF_INET AF_INET 所以在windows中AF_INET与PF_IN转载 2009-10-24 11:12:00 · 15573 阅读 · 0 评论