摘要: 在网上找了很多的资料,现将这些资料整合起来,详细介绍一下VC下的socket编程,并提供一个服务器客户端具体的实例。希望对您有所帮助一、原理部分 (个人觉得这篇写的可以,所以转与此,原文地址:http://dev.yesky.com/78/2683078.shtml) 在网络编程中最常用的方案便是Client/Server(客户机/服务器)模型。在这种方案中客户应用程序向服务器程序请求服务。一个服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户向这个服务的地址提出了连接请求。在这个时刻,服务程序被"惊醒"并且为客户提供服务-对 阅读全文
posted @ 2011-03-06 17:48 奔跑的兔子 阅读(61693) 评论(9) 推荐(8) 编辑
摘要: 今天对XML文件进行了一些简单的读写操作,下面来具体实现步骤:首先:建立一个基于Dialog的MFC工程,工程名为OperateXML,然后在对话框上添加两个按钮("Create"和"GetData"和一个ListControl控件(用来显示数据),首先要导入库文件#import "msxml3.dll"using namespace MSXML2;主要用来实现XML文件的相关操作,双击"Create"按钮进入代码编写,代码如下:void COperateXML::OnBtnCreate() {// TODO: A 阅读全文
posted @ 2011-03-03 23:48 奔跑的兔子 阅读(8344) 评论(2) 推荐(1) 编辑
摘要: (一) MFC多线程 MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。 工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外 的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API编程而言,这两种线程是没有区别的,它们都只需线程的启动地址即可启动线程来 执行任务。 在MFC中,一般用全局函数AfxBeginThread()来创建并初始化一个线程的运行,该函数有两种重载形式,分别用于创建工作者线程和用 阅读全文
posted @ 2011-03-03 15:49 奔跑的兔子 阅读(1041) 评论(0) 推荐(1) 编辑
摘要: //OpenCV 下的图像任意角度的旋转//需要inter公司的OpenCV的支持.//OpenCV下的图像任意角度的旋转//待旋转的图像IplImage* Img_old//返回的旋转后图像 IplImage* Img_tmp.//旋转的角度,单位度.//三种不同的方法.其中方法二没有完全测试,方法一可以满足大部分需要//Vastsky - Nercita 2005 6 12 //vastsky_sun#126.comIplImage * CCropMeasureView::FitRotate (IplImage* Img_old, double angle,int method){IplI 阅读全文
posted @ 2011-03-02 23:45 奔跑的兔子 阅读(33044) 评论(1) 推荐(0) 编辑
摘要: 在C++中要进行并发处理,不可避免要使用多线程,在传统的教科书中,大家都是采用最原始的多线程技术,应用逻辑和线程并发策略紧密绑定。在一个典型的服务器程序中,客户端的请求往往包含了很多不同的逻辑命令,如在一个线程处理函数中,需要根据客户端的命令代码处理不同的业务逻辑:int thrad_main(int cmd_id,char *data){switch(cmd_id){case 1:...break;case 2:...break;}}如此这般,业务处理逻辑和线程逻辑紧密耦合,这是一种很“丑陋”的代码。如何通过一种优雅的方法,分离并发逻辑和业务逻辑,通过通用的并发框架,业务逻辑设计者只需要关. 阅读全文
posted @ 2011-03-02 12:50 奔跑的兔子 阅读(2664) 评论(0) 推荐(2) 编辑
摘要: zero 坐在餐桌前,机械的重复“夹菜 - 咀嚼 - 吞咽”的动作序列,脸上用无形的大字写着:我心不在焉。在他的对面坐着Solmyr ,慢条斯理的吃着他那份午餐,维持着他一贯很有修养的形象 ——— 或者按照 zero 这些熟悉他本质的人的说法:假象。“怎么了 zero ?胃口不好么?”,基本填饱肚子之后,Solmyr 觉得似乎应该关心一下他的学徒了。“呃,没什么,只是 …… Solmyr ,C++ 为什么不支持垃圾收集呢?(注:垃圾收集是一种机制,保证动态分配了的内存块会自动释放,Java 等语言支持这一机制。)”Solmyr 叹了口气,用一种平静的眼神盯着 zero :“是不是在 BBS 阅读全文
posted @ 2011-01-17 10:27 奔跑的兔子 阅读(887) 评论(0) 推荐(0) 编辑
摘要: 这是个真实的故事。从前在海岸边有一群扇贝在悠哉游哉地生活繁衍着。它们自然是衣食不愁,连房子也有了着落。它们担忧的只有一件事:每隔一段时间,总有一个人来挖走它们之中的一部分。当然啦,挖回去干什么这大家都知道。但扇贝们不知道的是,这人的家族图腾是Firefox的图标,所以他总是选择那些贝壳花纹长得比较不像Firefox图标的扇贝。这种状况持续了好几十万代。大家应该也猜到扇贝们身上发生什么事情了:它们的贝壳上都印着很像Firefox图标的图案。可能有些读者会说:你这不是糊弄我们么,Firefox才有多少年历史,你就搞了个几十万代的扇贝?确有其事,但是这些扇贝不是真实的,它们在我电脑的内存里边生活。它 阅读全文
posted @ 2011-01-17 10:26 奔跑的兔子 阅读(3516) 评论(1) 推荐(0) 编辑
摘要: 所谓分水岭算法有好多种实现算法,拓扑学,形态学,浸水模拟和降水模拟等方式。要搞懂就不容易了。WatershedAlgorithm(分水岭算法),顾名思义,就是根据分水岭的构成来考虑图像的分割。现实中我们可以或者说可以想象有山有湖的景象,那么那一定是水绕山,山围水的情形。当然在需要的时候,要人工构筑分水岭,以防集水盆之间的互相穿透。而区分高山(plateaus)与水的界线,以及湖与湖之间的间隔或都是连通的关系,就是我们可爱的分水岭(watershed)。为了得到一个相对集中的集水盆,那么让水涨到都接近周围的最高的山顶就可以了,再涨就要漏水到邻居了,而邻居,嘿嘿,水质不同诶,会混淆自我的。那么这样 阅读全文
posted @ 2011-01-17 10:23 奔跑的兔子 阅读(8032) 评论(0) 推荐(0) 编辑
摘要: 线程是进程的一条执行路径,它包含独立的堆栈和CPU寄存器状态,每个线程共享所有的进程资源,包括打开的文件、信号标识及动态分配的内存等。一个进程内的所有线程使用同一个地址空间,而这些线程的执行由系统调度程序控制,调度程序决定哪个线程可执行以及什么时候执行线程。线程有优先级别,优先权较低的线程必须等到优先权较高的线程执行完后再执行。在多处理器的机器上,调度程序可将多个线程放到不同的处理器上去运行,这样可使处理器任务平衡,并提高系统的运行效率。Windows是一种多任务的操作系统,在Windows的一个进程内包含一个或多个线程。32位Windows环境下的Win32API提供了多线程应用程序开发所需 阅读全文
posted @ 2011-01-17 09:59 奔跑的兔子 阅读(1937) 评论(1) 推荐(0) 编辑
摘要: #include"stdio.h"#include"stdlib.h"typedef struct Node{ int data; struct Node *next;}list,*ptr_list;typedef struct List{ int len; ptr_list head;}List; bool delete_node(List *L,int pos){ if(pos==0) {re... 阅读全文
posted @ 2011-01-11 18:15 奔跑的兔子 阅读(566) 评论(0) 推荐(0) 编辑