技术专区
bmexue
这个作者很懒,什么都没留下…
展开
-
Socket创建C/S模型的小结
经过一段时间的学习,对于Socket创建C/S模型有了一些心得,写在这里供自己和大家参考。 一般服务器都要和多个客户端连接通讯,当所有通讯都是TCP连接时,需要服务器和每个客户端保持着连接,并且服务器还要很好的处理将要来的连接请求以及可能会断开的客户。 1 处理将要来的连接请求(支持关闭套接字):在这里我是专开了一个线程去监听网络,原创 2006-04-15 22:19:00 · 1583 阅读 · 0 评论 -
计算剩余时间的方法
近日做一个软件,需要计算剩余时间。 算法原理就是: 已经耗时*剩余大小/已经处理的大小。 但发现了计算的速度一直抖动, 发现是因为UI在没有进度回调时,也在刷新剩余时间,这样导致了误差。 比如处理1G大小的数据 已经处理了100M 耗时100S,原创 2011-08-18 17:04:31 · 5473 阅读 · 0 评论 -
manifest须知
manifest问题一直没怎么搞透,这周因为项目问题。终于彻底搞明白了。manifest说本质上就是自己配置运行时库的问题。 1 如果全部采用静态链接,那么就不需要配置manifest 运行时库。 当自己的程序DLL原创 2011-09-22 17:40:46 · 649 阅读 · 0 评论 -
NSIS Unicode
NSIS有Unicode一说, 所以在使用和系统有关系的字符时,必须按照unicode(宽字符)明确指定编码,如果指定的是窄字符,则和期望的不一样。 比如要用: System::Call 'kernel32::CreateMut原创 2011-09-22 17:44:45 · 5532 阅读 · 0 评论 -
字符编码小结
1 早期只有127以内的字符 20以内是控制字符。2 后来各国有了自己的编码,但一般是两个字节表示一个字符(中国)。3 UNICODE 就是解决各国之间冲突的问题,定义了统一的标准。 可以65025个字符。 这样英文也是一个字符两个字节,这样的好处是全世界统一。4 UTF 系列其实和UNICODE可以一一对应,目的是为了网络传输,具体还要分析。原创 2011-11-11 18:23:53 · 526 阅读 · 0 评论 -
html js学习网站
http://www.w3school.com.cn/h.asp原创 2011-11-11 10:52:39 · 1175 阅读 · 1 评论 -
启发式搜索
启发式路径搜索目录一 题目背景 1二 方法提炼 2三 Demo 2四 优化启发式搜索 5一 题目背景我们玩游戏时,经常点击一下鼠标,游戏角色就会自动按照最短路径走向目的地,这需要搜索最短路径,这都是游戏程序帮我们完成了。游戏程序是如何做到高效完成的呢?常规的最短路径搜索用深度优先搜索,宽度优先搜索Dijstra算法等,宽度优先算法和Dijstra都是贪心为原创 2011-11-13 23:05:09 · 12881 阅读 · 3 评论 -
防止程序无响应
一般来说程序的无响应是因为UI线程(主线程)在执行一个重量级操作。 可以通过以下方法避免:1 开一个子线程去出去,通过消息告诉上层。2 主线程把耗时操作分开, 每操作一段时间,通过postmessage打断当前堆栈,给UI线程留出CPU时间片, 然后自己在下一个消息中继续处理。 比如要处理1万的人的信息,每个人的信息处理可能需要10ms,如果一次处理完,就需要100秒,主原创 2012-01-06 15:36:48 · 1108 阅读 · 0 评论 -
尽量不要使用FindWindow
尽量不用FindWindow: 最近发现se6和se5进程共存时窗口名称一样引起的bug。原因是我们经常使用FindWindow来获得窗口句柄,然后进行消息通讯,这样调用简单,但增加了不同模块之间的依赖性,比如同时有两个进程时,就可能会找错窗口。而如果靠人去维护这个窗口名称,在程序工程增大的时候,维护成本会相应增加。 推荐通过接口来获得HWND,然后再尝试发送原创 2012-08-10 16:20:54 · 2865 阅读 · 0 评论 -
回调函数的学习
来实习已经快1个月了 至于回调得格式网上多得很,自己搜吧。不过我要记下自己犯错误的地方。回调函数的声明加上了WINAPI 修饰(这是为了混合编程,不同语言的参数入栈顺序不太一样,这样可以强行一样),那么被调用函数也必须是WINAPI的。WINAPI和CALLBACK都是__stdcall格式的。原创 2007-08-14 18:10:00 · 583 阅读 · 0 评论 -
遍历搜索处理修改的参数
我们在遍历一个问题,有时需要对不同情况都需要对参数做不同的修改。 如果有些参数仅仅是几个变量,我们在写代码时需要用数学表达式。 比如 next (int i, int j) 对四个方向遍历写成 i++; next(i,j) 那么后面别的情况就比影响了,所以i,j在这里不能改变。所以应该写成next(i+1,j)有时候参数是数组,并且不同情况需要修改一次,如果对每种情况都新原创 2006-12-20 16:35:00 · 763 阅读 · 0 评论 -
Effective C# 摘要
第一章 C#语言元素 项1:总是使用属性,不要使用可访问的数据成员 项2:常数项尽量使用readonly,而不是const 项3:类型装换时,不要使用强制转换,使用操作符is或者as 项4:使用Conditional标记代替#if条件编译 项5:给你建立的每个类写一个ToString()函数 项6:搞清楚值类型和引用类型的区别 项7:尽量选择不可变基础类型 项8:对于值类型保证0值代表一个有效的状转载 2006-04-16 22:02:00 · 877 阅读 · 0 评论 -
局域网传输大文件问题
这是住转载的 问: 如果在局域网内开发一文件传输程序(局域网网卡均为100M),文件被分割成N个包发送的话,使用TCP直接发送,如果我发完一个包不延时的话肯定会丢包。TCP协议不是号称能够避免丢包吗?如果本程序需要在外网上使用,也必须延时吗,那这个延时值应该设置为多少? 答: TCP协议不是号称能够避免丢包吗?---->是保证在传输中不原创 2006-04-17 22:47:00 · 2273 阅读 · 0 评论 -
编译器初学
这学期在学习编译原理,有个C#写的编译器的源代码,是简单C++(数据类型少,类继承关系只有一层),主要用来理解编译器原理。开始看的是书,把我看的晕头转向,感觉讲的离实际比较远,太偏一些数学理论,暂时先扔下。 软件是个可多次使用的东东,尽量使用已经写好的类库,这样开发速度就快了好多。用C#写编译器本身就很好学习。用XML而不要自己parse文本。原创 2006-04-19 14:04:00 · 885 阅读 · 0 评论 -
异常处理
介绍 在任何应用系统开发中,异常管理对开发人员来说都是一个关键领域。作为一个开发人员,你应该采用一种合适的、能让你编写健壮且高质量代码的异常管理策略。如果使用得当,异常管理将是一个很强大的概念而且使你的开发工作变的很容易。然而,一个不合适的异常处理将会使你的应 用系统性能降低。 在你钻研这些之前,要先搞清楚异常管理是什么,这点很重要。一般来说异常就表示“打破系统预定的假设”。“异常”和“错误”转载 2006-04-30 11:41:00 · 1355 阅读 · 4 评论 -
ARP病毒攻击技术分析与防御
一、ARP Spoofing攻击原理分析在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的。ARP协议对网络安全具有重要的意义。通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞或者实现“man in the middle” 进行ARP重定向和嗅探攻击。用伪造源MAC地址发送ARP响应包,对ARP高速缓存机制的攻击。每个主机转载 2006-11-08 09:38:00 · 785 阅读 · 0 评论 -
内存对齐 节约内存
许多实际的计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的首地址的值是某个数k(通常它为4或8)的倍数,这就是所谓的内存对齐,而这个k则被称为该数据类型的对齐模数(alignment modulus)。当一种类型S的对齐模数与另一种类型T的对齐模数的比值是大于1的整数,我们就称类型S的对齐要求比T强(严格),而称T比S弱(宽松)。这种强制的要求一来简化了处理器与内存原创 2006-11-21 11:45:00 · 880 阅读 · 0 评论 -
消除中文乱码
好多中文在拷贝后就成了乱码,切换输入法到中文就解决了。:)原创 2006-11-21 11:15:00 · 789 阅读 · 0 评论 -
STL对字符串排序
利用STL的确可以事半功倍。前几天遇到了要对字符串进行排序。STL不支持对char 数组排。后来问人,应该这样: string str[n]; string 数组 str[i] = &c[i][0] string其实可以由char 数组转化,前提是最后一个char为NULL then sort( str, str+n);原创 2006-11-21 21:14:00 · 2043 阅读 · 0 评论 -
网络加密如何协商密钥
方法应该有很多种: 双方提前制定好加密算法和密钥,但危险就是有人泄露了密钥和算法。 所以最好就是有个密钥动态生成,然后双方协商,但还不能让别人知道。 https采用的ssl: 1) 服务动态生成一对公钥A和密钥B(非对称加密),然后把公钥A发送给客户端,客户端自己动态生成一个对称密钥C,然后通过公钥A 加密后发送给服务器,服务器通过密钥原创 2012-12-05 18:36:00 · 3710 阅读 · 2 评论