2010年6月14日

转:MFC中常用类,宏,函数介绍

摘要: 常用类CRect:用来表示矩形的类,拥有四个成员变量:top left bottom right。分别表是左上角和右下角的坐标。可以通过以下的方法构造: CRect( int l, int t, int r, int b ); 指明四个坐标 CRect( const RECT& srcRect ); 由RECT结构构造 CRect( LPCRECT lpSrcRect ); 由RECT结构... 阅读全文

posted @ 2010-06-14 21:37 Livid 阅读(230) 评论(0) 推荐(0) 编辑

转:Socket在阻塞模式下的信息收发和文件接收

摘要: 概述:收发数据是网络编程的主题,在套接字上收发数据我们可以使用send和recv,当然还有Winsock2的WSASend和WSARecv。我们这里只讨论send和recv。套接字可以工作在阻塞态和非阻塞态,,阻塞态就是函数调用会停住,非阻塞态就是函数调用会立刻返回,待到后面的某个时间点在去取得结果。我们这里先讨论阻塞态。收发信息就是在Socket上收发二进制流。而收发文件实际上也就是收发信息,只... 阅读全文

posted @ 2010-06-14 21:35 Livid 阅读(1056) 评论(0) 推荐(0) 编辑

转:直接用socket实现HTTP协议

摘要: 直接用socket实现HTTP协议作者:阙荣文(querw)北方工业大学2000级计算机4班下载源代码  从HTTP服务器上下载一个文件有很多方法,“热心”的微软提供了 WinInet 类,用起来也很方便。当然,我们也可以自己实现这些功能,通过格式化请求头很容易就能实现断点续传和检查更新等等功能 。本文附带的工程中有一个支持 HTTP1.1 协议,直接用 Socket 实现... 阅读全文

posted @ 2010-06-14 21:31 Livid 阅读(4684) 评论(0) 推荐(2) 编辑

转:线程同步技术剖析

摘要: VC线程同步技术剖析作者:xuefeifei 来源:zz 发表时间:2006-12-09 摘要: 多线程同步技术是计算机软件开发的重要技术,本文对多线程的各种同步技术的原理和实现进行了初步探讨。关键词: VC++6.0; 线程同步;临界区;事件;互斥;信号量;正文 使线程同步  在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的... 阅读全文

posted @ 2010-06-14 21:28 Livid 阅读(202) 评论(0) 推荐(0) 编辑

转:线程同步

摘要: 线程同步线程的同步多线程的使用会产生一些新的问题,主要是如何保证线程的同步执行。多线程应用程序需要使用同步对象和等待函数来实现同步。12.2.1 为什么需要同步  由于同一进程的所有线程共享进程的虚拟地址空间,并且线程的中断是汇编语言级的,所以可能会发生两个线程同时访问同一个对象(包括全局变量、共享资源、API函数和MFC对象等)的情况,这有可能导致程序错误。例如,如果一个线程在未完成对某一大尺寸... 阅读全文

posted @ 2010-06-14 21:26 Livid 阅读(256) 评论(0) 推荐(0) 编辑

转:对MFC封装Windows通讯API的研究

摘要: 对MFC封装Windows通讯API的研究一、引言 近年来,利用Internet进行网际间通讯,在WWW浏览、FTP、Gopher这些常规服务,以及在网络电话、多媒体会议等这些对实时性要求严格的应用中成为研究的热点,而且已经是必需的了。Windows环境下进行通讯程序设计的最基本方法是应用Windows Sockets实现进程间的通讯,为此微软提供了大量基于Windows Sockets的通讯AP... 阅读全文

posted @ 2010-06-14 21:23 Livid 阅读(549) 评论(0) 推荐(0) 编辑

转:如何进行文件操作

摘要: 如何进行文件操作 取得文件名 打开文件 移动文件指针 读写文件 关闭文件 取得文件名{ CString FilePathName; CFileDialog dlg(TRUE);///TRUE为OPEN对话框,FALSE为SAVE AS对话框 if(dlg.DoModal()==IDOK) FilePathName=dlg.GetPathName();} 相关信息:CFileDialog 用于取文... 阅读全文

posted @ 2010-06-14 21:21 Livid 阅读(193) 评论(0) 推荐(0) 编辑

转:UTF-8 and Unicode FAQ

摘要: UTF-8 and Unicode FAQby Markus Kuhn中国LINUX论坛翻译小组 xLoneStar[译] 2000年2月 这篇文章说明了在 POSIX 系统 (Linux,Unix) 上使用 Unicode/UTF-8 所需要的信息. 在将来不远的几年里, Unicode 已经很接近于取代 ASCII 与 Latin-1 编码的位置了. 它不仅允许你处理处理事实上存在于地球上的任... 阅读全文

posted @ 2010-06-14 21:20 Livid 阅读(219) 评论(0) 推荐(0) 编辑

转:UTF-8与GB2312之间的互换

摘要: UTF-8与GB2312之间的互换作者:吴康彬  相信一定有不少的程序开发人员时常会遇到字符编码的问题,而这个问题也是非常让人头痛的。因为这些都是潜在的错误,要找出这些错误也得要有这方面的开发经验才行。特别是在处理xml文档时 ,该问题的出现就更加的频繁了,有一次用java写服务器端程序,用vc写客户端与之交互。交互的协议都是用xml写的。结果在通讯时老是发现数据接受不正确。纳闷!于是用抓取网络数... 阅读全文

posted @ 2010-06-14 21:18 Livid 阅读(470) 评论(0) 推荐(1) 编辑

转:VC常见数据类型转换详解

摘要: VC常见数据类型转换详解我们先定义一些常见类型变量借以说明 int i = 100; long l = 2001; float f=300.2; double d=12345.119; char username[]="女侠程佩君"; char temp[200]; char *buf; CString str; _variant_t v1; _bstr_t v2; 一、其它数据类型转换为字符串 ... 阅读全文

posted @ 2010-06-14 21:08 Livid 阅读(541) 评论(0) 推荐(0) 编辑

转:STL提供了三个最基本的容器:vector,list,deque

摘要: vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随机存取,即[]操作符,但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝,另外,当该数组后的内存空间不够时,需要重新申请一块足够大的内存并进行内存的拷贝。这些都大大影响了vector的效率。 list就是数据结构中的双向链表(根据sgi stl源代码),因此它的内存空间可以... 阅读全文

posted @ 2010-06-14 21:06 Livid 阅读(1025) 评论(1) 推荐(0) 编辑

转:socket的一些基本结构

摘要: socket的一些基本结构一.socket的一些基本结构1.32位的IP地址:struct in_addr{ unsigned long s_addr;}2.TCP/IP所在的网际通信域使用的套接字地址格式:struct sockaddr_in{ short int sin_family; //表示所属地址簇,TCP/IP必须是AF_INET unsigned short int sin_port... 阅读全文

posted @ 2010-06-14 21:01 Livid 阅读(191) 评论(0) 推荐(0) 编辑

转: WaitForMultipleObjects用法探索

摘要: WaitForMultipleObjects用法探索WaitForMultipleObjects是Windows中的一个功能非常强大的函数,几乎可以等待Windows中的所有的内核对象(关于该函数的描述和例子见MSDN,).但同时该函数在用法上却需要一定的技巧.原型:DWORD WaitForMultipleObjects(DWORD nCount,const HANDLE* lpHandles,... 阅读全文

posted @ 2010-06-14 21:00 Livid 阅读(375) 评论(0) 推荐(0) 编辑

转: post 消息

摘要: post 消息几个必要字段格式。 C/C++ code"POST %s HTTP/1.1\r\n" \"Accept: */*\r\n" \"Content-Type: application/x-www-form-urlencoded\r\n" \"User-Agent: Mozilla/4.0 (compatible; MPUD %s)\r\n" \"Host: %s\r\n" \"Cache... 阅读全文

posted @ 2010-06-14 20:57 Livid 阅读(316) 评论(0) 推荐(0) 编辑

转:SOCKET编程进阶之Overlapped I\O事件通知模型

摘要: SOCKET编程进阶之Overlapped I\O事件通知模型原文地址:http://blog.csdn.net/echoff/archive/2007/09/23/1797310.aspxWINSOCK I\O模型有六种: 一:select模型 二:WSAAsyncSelect模型 三:WSAEventSelect模型 四:Overlapped I/O 事件通知模型 五:Overlapped I... 阅读全文

posted @ 2010-06-14 20:50 Livid 阅读(869) 评论(0) 推荐(1) 编辑

转:SOCKET编程进阶之Overlapped I\O完成例程模型

摘要: SOCKET编程进阶之Overlapped I\O完成例程模型原文地址:http://blog.csdn.net/echoff/archive/2007/09/23/1797319.aspx完成例程模型相比与事件通知模型有个很大的优点就是不再受64个消息的限制,一个线程可以同时管理成百上千个socket连接,且保持较高的性能。 完成例程相比与完成端口较为逊色,因为它的性能不能随着系统CPU数量的增... 阅读全文

posted @ 2010-06-14 20:49 Livid 阅读(545) 评论(0) 推荐(0) 编辑

转: HTTP请求模型

摘要: HTTP请求模型 一、连接至Web服务器一个客户端应用(如Web浏览器)打开到Web服务器的HTTP端口的一个套接字(缺省为80)。例如:http://www.myweb.com:8080/index.html在Java中,这将等同于代码:Soceet socket=new Socket("www.myweb.com",8080);InputStream in=socket.getInputStr... 阅读全文

posted @ 2010-06-14 20:44 Livid 阅读(283) 评论(0) 推荐(0) 编辑

转: Windows Internet - WinINet 学习笔记(2)

摘要: 使用 WinINet 函数访问WWW资源(1)初始化 WWW 连接将服务类型设为 INTERNET_SERVICE_HTTP 调用 InternetConnect 来建立一个 HTTP 会话HINTERNET InternetConnect(__in HINTERNET hInternet, //InternetOpen 返回的句柄__in LPCTSTR lpszServerName, //可以... 阅读全文

posted @ 2010-06-14 20:34 Livid 阅读(810) 评论(0) 推荐(0) 编辑

转:Windows Internet - WinINet 学习笔记(1)

摘要: 1.关于WinINetWinINet不是给服务端用的,服务端用Microsoft Windows HTTP Services (WinHTTP)WinINet抽象了Gopher,FTP,HTTP协议的一些细节。2.HINTERNET 句柄WinINet函数创建、使用的句柄都是HINTERNET类型的,这种类型的句柄无法被转换成其它类型的句柄。换句话说,最好别用ReadFile、CloseHandl... 阅读全文

posted @ 2010-06-14 20:23 Livid 阅读(1793) 评论(0) 推荐(0) 编辑

HTTP协议详解(真的很经典)

摘要: 转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspxAuthor :Jeffrey引言HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行... 阅读全文

posted @ 2010-06-14 16:54 Livid 阅读(298) 评论(0) 推荐(0) 编辑

导航