作者:宋华前一篇《VisualC#.Net网络程序开发-Socket篇》中说到:支持Http、Tcp和Udp的类组成了TCP/IP三层模型(请求响应层、应用协议层、传输层)的中间层-应用协议层,该层的类比位于最底层的Socket类提供了更高层次的抽象,它们封装TCP和UDP套接字的创建,不需要处理连接的细节,这使得我们在编写套接字级别的协议时,可以更多地尝试使用TCPClient、UDPClient和TcpListener,而不是直接向Socket中写。它们之间的这种层次关系示意如下:可见,TcpClient类基于Socket类构建,这是它能够以更高的抽象程度提供TCP服务的基础。... Java语言从其诞生到现在不过短短五年时间,却已经成为全球最热门的语言,Java程序员正成为IT业其它程序员中薪金最高的职员。这一切都应归功于Java良好的特性:简单、面向对象、分布式、平台无关性、可移植性、支持多线程等等。本文将用Java的多线程特性来实现线程等待提示框。1、问题的提出在Java应用程序编程中,有时需要在GUI(图形化用户界面)中处理一些占用系统资源较多,耗费时间较长的事务,例如:与数据库进行大批量数据交换、大数据量的复杂运算、远程连接服务器等等。系统在处理这些事务时,如果还是使用GUI所在的线程,会导致界面冻结,无法刷新,看起来好象系统已经崩溃,这是一个良好的... 引言java语言自90年代出现以来,因为它的安全性和跨平台性(即所谓的”WriteOnce,RunAnywhere”)等特点,深得广大程序员的青睐,但是同时,Java程序的运行效率的低下也是程序员的心病。Java是介于解释型和编译型之间的一种语言,同样的程序,如果用编译型语言C来实现,其运行速度一般要比Java快一倍以上。怎样提高java应用程序的效率是广大程序员关心问题。本文将从与Java字节码的运行过程中影响性能的相关因素的分析入手,然后,探讨一些在Java代码的设计过程中具体的有助于提高性能的策略。一、性能分析&nbs... 最近写的一个GD图库用以生成横竖柱状图和折线图的类库,算是一个教学例程吧<?ClassImageReport{var$X;//图片大小X轴var$Y;//图片大小Y轴var$R;//背影色R值var$G;//...G.var$B;//...B.var$TRANSPARENT;//是否透明1或0var$IMAGE;//图片对像//-------------------var$ARRAYSPLIT;//指定用于分隔数值的符号var$ITEMARRAY;//数值var$REPORTTYPE;//图表类型,1为竖柱形2为横柱形3为折线形v... 在很多的时候,我们需要将我们的数据导出到Excel中进行加工,在Access中有现成的工具可以实现可是在Delphi中却偏偏没有,无论如何我们需要这么一个工具,那么,事不宜迟,细细一想,最好的方法莫过于直接在程序中按照Excel的格式生成Excel文件,使用Ole技术直接调用Excel实例,由于第一种方法技术实现过于复杂,好在一般的计算机上已经安装了Office,在此就第二种方法“抛一块砖”。在此做一个示例以方便说明,我们考虑到导出数据有很多的情况是Master/Detail数据,因此... 简介在现实世界中,人们经常希望能够把某个文本文件的部分或全部内容保存到一个Web网页变量中。在经典的ASP中,只要简单地使用FileSystemObject就能做到了。其实,在ASPFAQs.com中就有一个FAQ栏目专门讨论FileSystemObject。可是在ASP.NET中呢?FileSystemObject当然还可以用,不过,经验表明这么做会严重影响服务器性能。因此,最好还是使用.NET框架本身提供的类来读取文件。本文要介绍的是如何读取文本文件;今后我还会介绍如何使用.NET框架类来读取XML文件。File?FileInfo?在.NET框架中,有许多方法可以打开文本... 一、问题的提出ActiveServerPages(ASP)是服务器端脚本编写的环境,它可以组合HTML页、脚本命令和ActiveX组件的功能创建和运行动态、交互的Web应用程序。然而ASP网页制作中,在使用dropdown下拉选择框控件时,通常只能对固定值进行选择,不能添加新的选项,给实际应用带来很大的不便。为了增强dropdown控件具有动态添加选项的功能,本文提供了一种将textbox控件和dropdown控件相结合的方法,使dropdown控件实现了自由添加选项的功能。二、问题解决的思路创建一个简单的数据库,并配置数据源,建立与数据库的连接。当每次访问asp页面时,将数据库... 一、前 言 不少软件作品都在其[帮助]菜单中加入了[访问我们的主页……]之类的功能,小辉对此颇感兴趣,查了一些关于它的实现方法,总觉得过于复杂。小辉在设计《小辉桌面王——酒井法子写真集系列》的时候,成功地在程序中实现了[访问小辉的主页……]的功能(右图中的第四个按钮),代码段非常简洁,现在有关设置思想和实现代码附后。《小辉桌面王——酒井法子写真集》是小辉写的一个小工具,感兴趣的读者可以从这里下载源代码(498KB)。二、设计思想 小辉的实现方法是:首先,通过读取注册表,取得Windows默认浏览器的路径名,然后带参数执行默认浏览器,所带的参数即所要调用的主页地址。—... VisualC#是微软推出的新一代程序开发语言,VisualC#实现许多功能是通过调用.Net框架为其中所有.Net程序开发语言提供的一个公用的软件包——.NetFrameWorkSDK。在这个软件包中提供了大量并且十分丰富的类库,可以说,没有这个软件开发包,VisualC#就寸步难行,无法编写哪怕一个功能十分的程序。但这样也会出现一个问题,如果在.NetFrameWorkSDK软件包中没有涉及到的功能,而在其他的第三方的COM组件中却提供了,那么这些组件是否可以被VisualC#使用。答案是:直接使用是不可以的,但这些COM组件经过一定转换后就可以。这种转换就是非受管代码(Unmana... Clipboard就是所谓的剪切板,当我们同时按动Ctrl+C键或者点击菜单“拷贝”的时候,选定的对象就被存放在了剪切板中了。如果刚才选定的对象是文件,那么在定盘符后,按动Ctrl+V键或者点击菜单“粘贴”,这时选定的文件就保存到指定的磁盘上面了;如果选定的对象是图象,那么在打开“画图”之后,按动Ctrl+V键或者点击菜单“粘贴”,图象就会显示在画图中了;如果是文本,那么在打开文本编辑器后,按动Ctrl+V键或者点击菜单“粘贴”,这时文本就会显示在文本编辑器中。当然选定的对象还有许多种,这就不一一举例了。上面这些操作其实就是剪切板几种典型的操作。那么这些操作如果用VisualC#来实现到... JSP默认是以多线程方式执行的,这是JSP与ASP,PHP,PERL等脚本语言不一样的地方,也是它的优势之一,但如果不注意多线程中的同步问题,会使所写的JSP程序有难以发现的错误。下面以一个例子说明JSP中的多线程问题及解决方法。一、JSP的中存在的多线程问题:当客户端第一次请求某一个JSP文件时,服务端把该JSP编译成一个CLASS文件,并创建一个该类的实例,然后创建一个线程处理CLIENT端的请求。如果有多个客户端同时请求该JSP文件,则服务端会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可大大降低对系统的资源需求,提高系统的并发量及响应时间.对JSP中可能用的的... 作者:仲光亮所周知,Windows系统的页式打印系统有许多好的特性,比如所见即所得、设备无关等等。但是,在一些实时性要求很高的工业控制系统中,需要将系统随机出现的信息实时地打印出来,要求来一行打一行,而不能来一行打一页,而Windows系统的页式打印系统却很难满足这样的应用需求。鉴于这个原因,为了满足实时系统的打印要求,有必要设计一个新的实时行式打印系统。下面详细介绍如何在Windows2000/NT上实现这样一个系统。总体设计实时系统的基本要求是实时性。本文采用以共享内存为中转的打印假脱机技术,所有的打印操作在内存中提交完成,保证了应用系统对打印操作... 作者:卢怀宇现在网上下载的软件大部分都需要注册后才能使用其全部的功能,也就是说当前大部分软件都是建立了注册机制的,对于一个刚进入软件行业的程序员来说一定非常想了解其中的注册机制是怎样实现的。其实用VC开发软件,是可以很方便地加入注册机制的。要实现软件注册功能,首先需要知道实现注册机制要涉及到的几个问题:1、如何加入注册检测,判断软件是否注册;2、如何生成注册码,如何保证一个用户名只生成与之唯一对应的注册码;3、在软件不注册情况下,如何限制软件功能的局限性;4、对已经负费使用用户而言,不应造成使用不便。首先,应该有一个生成注册码的算法,以下是我简单的一个... 第一步,建一DLL,DELPHI中NEW-》DLLSAVEASGETKEYlibrarygetKey;usesSysUtils,Windows,HookMaininhookmain.pas;exportsOpenGetKeyHook,CloseGetKeyHook,GetPublicP;beginNextHook:=0;procSaveExit:=ExitProc;DLLproc:=@DLLMain;ExitProc:=@HookExit;DLLMain(DLL_PROCESS_ATTACH);end.第二步,建一UNIT,HOOKMAIN。关... 这有点像金山词霸的屏幕取词。要获取当前鼠标位置的类名和句柄,只须通过WindowFromPoint和GetClassName这两个Win32函数就可以完成任务,不过,如果要获取当前鼠标位置的字符,可能要复杂得多。下面是很简单的范例,大家应该都可以轻易弄清楚的。 typeTForm1=class(TForm)NameLB:TLabel;ClassLB:TLabel;Timer1:TTimer;procedureTimer1Timer(Sender:TObject);procedureFormCreate(Sender:TObject);privatepr... 当用户在资源管理器中调用右键菜单时,会显示一个"属性"菜单项,点击属性菜单项会显示一个属性页,用户可以获得甚至修改文件信息。我们可以定制属性页通过实现属性页扩展。如下图所示,本文实现了一个显示wave(波形)文件的信息如声道数等信息的属性页扩展。 属性页扩展通常是同某类文件相关联的来实现同之相关的操作和信息显示,另外可以同驱动器相关联,我们还可以用属性页扩展来替换控制面板程序的属性页。象其他外壳扩展程序一样,属性页扩展也是以动态连接库形式实现的进程内COM对象。它除了IUnknown接口外还要实现IShellExtInit和IShellPropSheetEx... 作者:BUILDER.COMThursday,May23200211:26AM电子邮件脚本病毒在网络上泛滥成灾之后,作为脚本缺陷的始作俑者,WSH(Windows脚本主机)受到了广泛和强烈的抨击,不过,对应用程序开发人员而言,WSH仍然具备相当大的潜质和开发魅力。是的,脚本技术完全可能取代网络管理员对批处理文件的依赖,更时髦的脚本相信对那些“真正”的开发人员仍具相当的实用性。比方说,你知道微软的Office套件如此流行的原因吗?其中之一就是所有的Office应用程序都包括了了简单的开发环境,稍有技术的用户都可以由此实现重复任务的自动化。VBA(Visu... PrivateDeclareFunctionCreateDirectoryLib"kernel32"Alias"CreateDirectoryA"(ByVallpPathNameAsString,lpSecurityAttributesAsSECURITY_ATTRIBUTES)AsLongPrivateTypeSECURITY_ATTRIBUTESnLengthAsLonglpSecurityDescriptorAsLongbInheritHandleAsLongEndTypeSubMain()在C盘创... 异常是程序运行中发生的错误,异常处理是程序设计的一部分。在c#中异常处理是通过Exception基类进行的,可以创建自己的异常类,但这个类必须是继承自Exception基类。 异常将导致不完善或者不需要的结果,因此在程序设计中需要处理异常。异常也可以是象"IndexOutOfBounds"这样的错误,这个错误表示程序试图访问数组中部存在的元素;比如数组最大元素为100,当试图访问元素101时就将会发生这样的错误。但这些都是内建的异常,可以直接通过Exception基类处理,如果发生的异常不是内建的,那么就需要我们自己见一个异常处理类,当然这个类时继承自Exc... 如果想了解SOAP到底是什么,就要自己动手建立自己的SOAP标准对象。本文可以帮助你起步。简介SOAP-简单对象处理协议(SimpleObjectAccessProtocol)-是当前XML开发的热点。它是微软新一代VisualStudio的主要角色,是".NET"策略的基础。如果想用VB6编制一个有保障的SOAP服务,可以查阅微软的SOAP工具包(VB)。但如果想了解SOAP到底是什么,就要自己动手建立自己的SOAP标准对象。本文可以帮助你起步。本文中,我们创建一个简单的SOAP服务端和一个客户端。服务端用ASP编写,名为soap.asp。这个文件应存放在...