alaigle

prepare yourself to change the world!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2012年5月14日

摘要: 有时我们需要将函数作为结构体的成员,模拟C++类的情形,可应用于方法注册。#include <stdio.h>struct a{ void (*func)(char *);};void hello(char *name){ printf ("hello %s\n",name);}int main(){ struct a a1; a1.func = hello; a1.func("illusion"); system("PAUSE"); return 0;} 阅读全文
posted @ 2012-05-14 15:50 alaigle 阅读(538) 评论(0) 推荐(0)

摘要: 原文http://www.blogjava.net/huyi2006/articles/263836.html实例来自互联网,这段测试代码实现了基本的文件传输原理,没有实现错误处理。//////////////////////////////////////////////////////////////////////////////////////// file_server.c 文件传输顺序服务器示例////////////////////////////////////////////////////////////////////////////////////////本文件是服务器 阅读全文
posted @ 2012-05-14 15:49 alaigle 阅读(2002) 评论(0) 推荐(0)

摘要: 原文http://www.blogjava.net/huyi2006/articles/263831.html借此地方整理以下socket编程的多种语言的实现,socket可以跨平台的通信,因此多语言、多平台下的实现有必要了解的。代码都是源自网上,感谢网友的分享。socket编程在windows下的C语言实现,dev C++下编译通过编译时设置编译选项 工具-->编译选项-->编译器,勾选在连接器命令行加入以下命令,在对话框中填-lwsock32//server.c#include <stdio.h>#include <Winsock2.h>int main 阅读全文
posted @ 2012-05-14 15:48 alaigle 阅读(894) 评论(0) 推荐(0)

摘要: 原文http://www.blogjava.net/huyi2006/articles/189520.html在网络程序里面,一般的来说都是许多客户机对应一个服务器.为了处理客户机的请求, 对服务端的程序就提出了特殊的要求.我们学习一下目前最常用的服务器模型.循环服务器:循环服务器在同一个时刻只可以响应一个客户端的请求并发服务器:并发服务器在同一个时刻可以响应多个客户端的请求9.1 循环服务器:UDP服务器UDP循环服务器的实现非常简单:UDP服务器每次从套接字上读取一个客户端的请求,处理, 然后将结果返回给客户机.可以用下面的算法来实现. socket(...); bind(...); wh 阅读全文
posted @ 2012-05-14 15:47 alaigle 阅读(240) 评论(0) 推荐(0)

摘要: 原文http://www.blogjava.net/huyi2006/articles/139179.html(C)libpcap函数库说明libpcap获取数据包函数库说明libpcap的英文意思是 Packet Capture library,即数据包捕获函数库。该库提供的C函数接口可用于需要捕获经过网络接口(只要经过该接口,目标地址不一定为本机)数据包的系统开发上。由Berkeley大学Lawrence Berkeley National Laboratory研究院的Van Jacobson、Craig Leres和Steven McCanne编写,目前的最新版本为0.4。该函数库支持L 阅读全文
posted @ 2012-05-14 15:46 alaigle 阅读(2250) 评论(0) 推荐(0)

摘要: 原文http://www.blogjava.net/huyi2006/articles/139176.htmlsocket编程中需要用到的头文件sys/types.h:数据类型定义sys/socket.h:提供socket函数及数据结构netinet/in.h:定义数据结构sockaddr_inarpa/inet.h:提供IP地址转换函数netdb.h:提供设置及获取域名的函数sys/ioctl.h:提供对I/O控制的函数sys/poll.h:提供socket等待测试机制的函数其他在网络程序中常见的头文件unistd.h:提供通用的文件、目录、程序及进程操作的函数errno.h:提供错误号er 阅读全文
posted @ 2012-05-14 15:45 alaigle 阅读(285) 评论(0) 推荐(0)

摘要: 原文http://www.blogjava.net/huyi2006/articles/127361.html我最近开发个项目,要用到 libpcap 函数库,现将安装方法放在主页上供大家参考,一 下载libpcap 库,文件的格式为x.tar.gzhttp://www.tcpdump.org/release/二 安装 1、用 #tar zxvf x.tat.gz 命令解压文件到你的当前目录 2、进入刚才解开的libpcap目录,执行 #./configure 命令,生成Makefile文件3、输入 #make install 将生成的库安装到系统默认目录中。此目录为 /usr/lib ,如果 阅读全文
posted @ 2012-05-14 15:44 alaigle 阅读(1408) 评论(0) 推荐(0)

摘要: 原文http://www.blogjava.net/huyi2006/articles/118178.html很多文章对ip首部检验和的计算介绍得很简略,在理解上常常会比较困难。这篇文章是我自己的一些理解。或许也有不正确的地方,希望大家指正。这个问题一直困绕了我很长时间,今天终于理解了。我们可以通过spynet sniffer抓包软件,抓取一个ip数据包进行分析研究。下面我以本机抓到的一个完整的ip首部为例(红色字体表示):0000: 00 e0 0f 7d 1e ba 00 13 8f 54 3b 70 08 00 45 000010: 00 2e be 55 00 00 7a 11 51 阅读全文
posted @ 2012-05-14 15:16 alaigle 阅读(336) 评论(0) 推荐(0)

摘要: 原文http://www.blogjava.net/huyi2006/articles/180131.html三个函数的申明分别是:void*realloc(void* ptr, unsigned newsize);void*malloc(unsigned size);void*calloc(size_t nelem, size_t elsize);都在stdlib.h函数库内它们的返回值都是请求系统分配的地址,如果请求失败就返回NULLmalloc用于申请一段新的地址,参数size为需要内存空间的长度,如:char* p;p=(char*)malloc(20);calloc与malloc相似 阅读全文
posted @ 2012-05-14 15:12 alaigle 阅读(279) 评论(0) 推荐(0)

摘要: 原文http://www.blogjava.net/huyi2006/articles/110533.html当初学Pascal的时候就想过这个问题:如何动态的定义及使用数组呢?记得一般用数组的时候都是先指定大小的。当时问老师,老师说是不可以的。后来又问了一位教C++的老师,他告诉我在C++里用new可以做到,一直不用C++,所以也不明白。今天在逛论坛时终于找到了C语言中的用法(看原贴): int *a; int N; scanf("%d", &N); a = (int *) malloc(N * sizeof(int)); .... free(a); 这样就动态分 阅读全文
posted @ 2012-05-14 15:09 alaigle 阅读(3213) 评论(0) 推荐(0)