摘要: 在服务器崩溃后重启的时候,因为之前的连接都无效了,所以服务器端会发送一个RST响应,此时客户端产生ECONNRESET错误!这就需要你在客户端重新连接了! 阅读全文
posted @ 2014-07-03 14:18 HAPPY_PM 阅读(2435) 评论(0) 推荐(0) 编辑
摘要: 因为TCP需要知道在连接建立期间的缓冲区大小,所以必须在服务端调用listen之前,客户端调用connect之前进行设置。客户端:setsockopt(s,SOL_SOCKET,SO_SNDBUF,(char*)&sndbufsz,sizeof(sndbufsz))connect.....服务端:s... 阅读全文
posted @ 2014-07-03 12:53 HAPPY_PM 阅读(1763) 评论(0) 推荐(0) 编辑
摘要: TCP读取定长数据接口的编写:int readn(int fd,char*bp,size_t len){ int cnt; int rc; cnt=len; while(cnt>0) { rc=recv(fd,bp,cnt,0); if(rclen) { //disc... 阅读全文
posted @ 2014-07-03 11:51 HAPPY_PM 阅读(1603) 评论(0) 推荐(0) 编辑
摘要: libnet介绍与分析当前,基于socket的网络编程已成为当今不可替代的编程方法,它将网络通讯当作文件描述符进行处理,把对这个“网络文件”(即socket套接字)的操作抽象成一种类似于文件操作的方式进行。从实现细节上,这种工作方式根据TCP/IP的网络通讯模型,封装了一系列的实现,使得我们只需要使... 阅读全文
posted @ 2014-06-27 12:14 HAPPY_PM 阅读(1995) 评论(0) 推荐(0) 编辑
摘要: 1.SYN:建立连接2.ACK:确认3.FIN:通讯终止4.RST:异常终止通讯连接5.URG:紧急数据6.PSH:发送方通过使用PUSH位来通知接收方将所有收到的数据立即提交给服务器进程,而不需要等待额外数据(将缓存填满)而让数据在缓存中停留!这里所说的数据包括与此PUSH包一起传输的数据以及之前... 阅读全文
posted @ 2014-06-27 09:57 HAPPY_PM 阅读(899) 评论(0) 推荐(0) 编辑
摘要: 0x0800 IP0x0806 ARP0x8035 RARP更新中。。。 阅读全文
posted @ 2014-06-26 18:12 HAPPY_PM 阅读(862) 评论(0) 推荐(0) 编辑
摘要: 1)#define offsetof(s, m)(size_t)&(((s *)0)->m)2)#define OBJECT_HEAD_ADDRESS(ClassName,MemberName,Addre) \Addre - offsetof(ClassName, MemberName) 阅读全文
posted @ 2014-06-26 12:25 HAPPY_PM 阅读(712) 评论(0) 推荐(0) 编辑
摘要: 由于使用Raw Socket的时候,IP报头可完全由程序员自定义,所以我们可以任意地修改本地发送包的IP地址,使得接收方错误的认为IP报文是由欺骗地址发出的。 下面的程序演示了向某目标发送IP地址伪装的UDP报文的过程:void sendPesuoIpUDP(void){ WSADATA wsd;... 阅读全文
posted @ 2014-06-26 10:25 HAPPY_PM 阅读(753) 评论(0) 推荐(0) 编辑
摘要: ARP欺骗的原理可简单的解释如下:假设有三台主机A,B,C位于同一个交换式局域网中,监听者处于主机A,而主机B,C正在通信。现在A希望能嗅探到B->C的数据,于是A就可以伪装成C对B做ARP欺骗--向B发送伪造的ARP应答包,应答包中IP地址为C的IP地址而MAC地址为A的MAC地址。 这个应答包会... 阅读全文
posted @ 2014-06-26 10:22 HAPPY_PM 阅读(700) 评论(0) 推荐(0) 编辑
摘要: 紧接上节,DecodeIpPack()函数完成包的解析://IP包解析int DecodeIpPack(char *buf, int iBufSize){ IP_HEADER *pIpheader; int iProtocol, iTTL; char szProtocol[MAX_PROTO_TEX... 阅读全文
posted @ 2014-06-26 10:17 HAPPY_PM 阅读(436) 评论(0) 推荐(0) 编辑