- 博客(13)
- 资源 (2)
- 收藏
- 关注
转载 select函数详解及应用
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、 accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞
2009-03-29 20:29:00 10698 10
转载 判断数组元素是否重复
判断数组元素是否重复 要求:判断一个数组中是否存在相同的元素,如果存在相同的元素则输出“重复”,否则输出“不重复”。 该题中如果需要判断数组中元素是否重复,则需要对数组中的元素进行两两比较,如果有任意一组元素相等,则该数组中的元素存在重复,如果任意一组元素都不想等,则表示数组中的元素不重复。 实现思路:假设数组中的元素不重复,两两比较数组中的
2009-03-29 20:23:00 16869
原创 sizeof()
这是初学者问得最多的一个问题,所以这里有必要多费点笔墨。让我们先看一个结构体: struct S1 { char c; int i; }; 问sizeof(s1)等于多少聪明的你开始思考了,char占1个字节,int占4个字节,那么加起来就应该是5。是这样吗你在你机器上试过了吗也许你是对的,但很可能你是错的!VC6中按默认设置得到的结果为
2009-03-29 20:21:00 619
转载 编程修养(推荐阅读)
编程修养 什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对于速度快,只要编得多也就熟能生巧了。我认为好的程序员应该有以下几方面的素质: 1、有专研精神,勤学善问、举一反三。 2、积极向上的态度,有创造性思维。 3、与人积极交流沟通的能力,有团队精神。 4、谦虚谨慎,戒骄戒燥。
2009-03-29 19:47:00 714
转载 堆和栈的区别
最近太过执着于一些底层概念,《堆和栈的区别》这篇经典的博文已经被转载过N次,但还是转到这里,以方便日后查阅。谨对原创表示感谢!一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放,若程序员不释放,程序结
2009-03-29 19:43:00 902 1
原创 const用法详解
const用法详解面向对象是C++的重要特性. 但是c++在c的基础上新增加的几点优化也是很耀眼的就const直接可以取代c中的#define以下几点很重要,学不好后果也也很严重const1. 限定符声明变量只能被读 const int i=5; int j=0; ... i=j; //非法,导致编译错误 j=i; //合法2. 必须初始化 const int
2009-03-29 19:28:00 468
转载 (转)程序员每天应做的事
程序员每天该做的事 1、总结自己一天任务的完成情况 最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多2、考虑自己明天应该做的主要工作 把明天要做的事情列出来,并按照优先级排列,第二天应该把自己效率最高的时间分配给最重要的工作3、考虑自己一天工作中失误的地方,并想出避免下一次再犯的方法 出错不要紧,最重要的是不要重复犯相同的错误,那
2009-03-29 19:24:00 666
原创 解析IP数据包
//#include "stdafx.h"#include "winsock2.h"#include "ws2tcpip.h"#include "iostream.h"#include "stdio.h"typedef struct _IP_HEADER{ union { BYTE Version;//版本 BYTE HdrLen;//IHL }; BYTE ServiceType;//服务
2009-03-20 08:31:00 7466 4
原创 解析ARP数据包
//#include#pragma comment(lib,"Ws2_32.lib");//#pragma comment(lib,"wpcap.lib");#pragma comment(lib, "wpcap.lib");#include "pcap.h"#include #include #include #include "remote-ext.h " struct arppk
2009-03-20 08:26:00 3517 1
原创 模拟Ethernet帧的发送
// Ethernet.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "Ethernet.h"//#include "CSMA030390.h"#include "cmath"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS
2009-03-20 08:23:00 3599 3
原创 使用Winpcap函数库wpcap.lib的步骤及实例
1 安装驱动程序 下载winpcap driver和Dll 安装,安装后重启机器 2 下载wpdpack.解压后会看到其中包含docs,Include,lib.Examples等文件夹. 3 在VC中设定Include 目录及Library目录具体做法是,打开VC,点击Tools->Option->Directories.在include files中添加....../wpdpack/I
2009-03-15 09:34:00 6761
原创 基于winpcap的程序
#include "pcap.h"#include /* void main()//取得网络设备列表{ pcap_if_t *alldevs; pcap_if_t *d; int i=0; char errbuf[PCAP_ERRBUF_SIZE]; //取得网络设备列表 if(pcap_findalldevs(&alldevs,errbuf)==-1) { fprintf(stderr,"Er
2009-03-15 09:31:00 1576 2
原创 c++网络编程常用的函数
1. int pcap_findalldevs(pcap_if_t **, char *)说明:用来获得网卡的列表入口参数:指向pcap_if_t**类型的列表的指针的指针pcap_if_t 是pcap_if 重命名而来:typedef struct pcap_if pcap_if_t;pcap_if结构体如下:struct pcap_i
2009-03-14 08:56:00 1750
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人