摘要: memset、memcpy的使用方法!分类:c语言C plusplus2007-06-26 07:581290人阅读评论(0)收藏举报今天看到了menset的函数,不晓得是什么,baidu了一下。void *memset(void *s,int c,size_t n)总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。void是一个通用类型,使用的时候可以用int、char等等。memset() 函数常用于内存空间初始化。如:char str[100];memset(str,0,100);memset用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘ 阅读全文
posted @ 2013-01-06 11:39 lemin 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 【转】环形缓冲区的实现原理(ring buffer)在通信程序中,经常使用环形缓冲区作为数据结构来存放通信中发送和接收的数据。环形缓冲区是一个先进先出的循环缓冲区,可以向通信程序提供对缓冲区的互斥访问。1、环形缓冲区的实现原理环形缓冲区通常有一个读指针和一个写指针。读指针指向环形缓冲区中可读的数据,写指针指向环形缓冲区中可写的缓冲区。通过移动读指针和写指针就可以实现缓冲区的数据读取和写入。在通常情况下,环形缓冲区的读用户仅仅会影响读指针,而写用户仅仅会影响写指针。如果仅仅有一个读用户和一个写用户,那么不需要添加互斥保护机制就可以保证数据的正确性。如果有多个读写用户访问环形缓冲区,那么必须添加互 阅读全文
posted @ 2013-01-05 16:02 lemin 阅读(2479) 评论(0) 推荐(0) 编辑
摘要: sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。服务器端编程的步骤:1:加载套接字库,创建套接字(WSAStartup()/socket());2:绑定套接字到一个IP地址和一个端口上(bind());3:将套接字设置为监听模式等待连接请求(listen());4:请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept());5:用返回的套接字和客户端进行通信(send()/recv());6:返回,等待另一连接请求;7:关闭套接字 阅读全文
posted @ 2012-12-25 14:02 lemin 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 在VC++中,如果想要输入IP地址可使用IP地址控件,该控件是一个与编辑控件类似的控件,可用于输入IP地址。在对话框中放入此控件后,可以为控件定义一个 CIPAddressCtrl类 的变量对它进行控制。CIPAddressCtrl类 的主要成员函数有:void ClearAddress();清除IP地址控件中的内容。BOOL IsBlank();如果IP地址控件的所有域均为空,返回非0值;否则返回0。void SetAddress(BYTE nField0,BYTE nField1,BYTE nField2,BYTE nField3);void SetAddress(DWORD dwAddr 阅读全文
posted @ 2012-12-25 09:34 lemin 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 隐式链接指将DLL的函数符号输出库LIB链接,在执行文件中IMPORT段加入一系列函数的入口点!程序在加载启动时自动加载这些DLL,并查找函数入口点!像普通的SDK程序要加入KERNEL32。LIB链接就是!这样的方法是当使用DLL多时,程序启动很慢、! 动态链接指显式加载DLL,利用LoadLibrary,GetProcAddress取得函数入口点,执行再释放,这种方法是程序简洁,快速!但是不利于输出太多函数的DLL使用!代码量太大! 阅读全文
posted @ 2012-12-24 10:03 lemin 阅读(6066) 评论(1) 推荐(1) 编辑