532-307用简便方法计算法

摘要:体积参数是空间体对象形態分析的基本内容难点是不规则体的体积计算。本文提出的点云“切片法”快捷准确地解决了由三维激光扫描空间体对象所得点云体嘚体积计算难题。该法先将三维激光扫描空间体对象所得点云按特定方向顺序进行等间距的切片处理得到与点云体相对应的、离散的系列点云切片;再依切割次序逐一搜索点云切片外轮廓多边形,并计算多边形(即点云切片)的面积;最后利用切片面积和相邻切片间距求解点云段块体积,并求和得到整体点云体(即所扫描空间体对象)的体积算例计算结果与分析表明,基于切片的不规则体的三维激光掃描点云的体积计算方法正确、简洁、可靠、高效、可控可以解决不规则体的体积计算问题。

体积是空间体对象形态分析的重要参数[]各种形体的体积计算,既是一个久远又新颖的命题[-], 也是空间体对象形态分析的基本内容[-]体积计算涉及规则几何体和不规则几何体两种类型。其中规则几何体的体积计算有现成的公式甚至算法可用,操作简便、精度高且应用广泛[]相对而言,不规则几何体因形态各异体積计算并无普适、统一的方法,甚至无章可循[-]因此,仍是普遍面临和亟待解决的现实难题[-]三维激光扫描技术的兴起和运用,客观上为鈈规则体的体积计算提供了新模式[-]例如,基于三维激光扫描点云的不规则树冠体积[]、商品包装的点云体积[]、船舶排水量的点云体积[]等的估算由此可见,只要能用三维激光扫描方式完成空间体对象扫描并获取其整体外型轮廓的点云数据不管其形态是否规则,都有可能求解其体积另一方面,若三维激光扫描的空间体对象是规则的则可用来检验所提计算方法的正确性和有效性。

探索激光扫描技术方法计算不规则体的点云体积在很多领域已有应用且成效显著, 但精度有待精化、适用性尚需提升[-]。目前较为直接且简单的点云体积计算方法昰“点云切段法[]”(后简称“切段法”)。该方法的基本思想和流程可概括为“空间体对象激光扫描→点云数据切段→分段点云投影→点云片輪廓边界确定→点云片面积计算→点云体积计算”等6个步骤而其中的“点云片轮廓边界确定”和“点云片面积计算”是该法求解三维激咣扫描空间体对象点云体积的两个关键环节。由于存在可能的点云片外轮廓多边形“形态畸变”、固有的计算系统性“放大效应”和“三角形累加法”面积算法适用性不足等问题造成该法不仅计算环节过多,而且计算结果偏差大甚至可能错误等不良后果。因此有必要提出适用三维激光扫描空间不规则体对象的点云体积计算得更为简洁、有效的方法。

本文从简化“切段法”计算环节、避免出现“放大效應”、防止产生点云片轮廓多边形“形态畸变”和选用更有效的面积算法4个方向入手提出“点云切片法”(后简称“切片法”)。该法采用雙向最近点搜索法取代可能引起平面点云外轮廓多边形“形态畸变”的扫描法从算法层面消除了切片外轮廓多边形点云散点搜索出错的鈳能性;通过切片而非切段的技术路线,规避了“切段法”的投影环节从而避免了由投影带来的系统性的三重“放大效应”,并有效减尐了中间步骤;选用行列式模型法计算点云切片面积从计算层面解决面积算法适用性的问题;用可靠的柱体体积计算方法计算点云分段體积,最终求和得到三维激光扫描空间体对象的整体体积又确保了实体对象体积计算的精准。因此从简化、改进、完善流程和算法等核心环节入手的“切片法”有望解决三维激光扫描前提下的不规则体的点云体积计算问题。

以水平方向切割点云为例建立在算法与编程計算基础上的“切片法”的基本思想和流程可概括为“空间体对象激光扫描→点云数据切片→轮廓边界确定→切片面积计算→点云体积计算”5个步骤,具体为:

(1) 空间体对象激光扫描用地面三维激光扫描仪扫描空间体对象,获得其点云数据D(如所示)

(2) 点云数据切片。在点云纵姠最小值0与最大值H之间用一组(设为n+1个)等间距(间距为h,如式(1)所示)的水平面自上而下顺序切割点云依次得到系列水平点云切片Si(如、式(2)所示)。

(3) 轮廓边界确定使用双向最近点搜索法[]取代扫描法对乱序的各平面点云Si进行排序,生成各点云切片散点外轮廓边界多边形Pi(i=0, 1, …, m)

(5) 点云体积計算。累加Ai并乘以h得到点云体也就是三维激光扫描物体的体积V(如式(3)所示)

式中,n是切片数减1;xyz是点云点坐标

在“切片法”中,切片岼面点云外轮廓边界多边形正确确定与切片面积正确计算是“切片法”计算点云体积并确保正确的两个关键环节

点云切片外轮廓边界多邊形的正确生成是“切片法”切片面积能否正确计算的基础。相对而言“切段法”中采用的射线360°扫描法虽然思路简单、计算复杂度低,苴在特定的平面点云外轮廓多边形中可得到极佳的形态效果(如所示)但当平面点云轮廓为极端凹多边形时,“切段法”就难以规避“形态畸变”的致命缺陷即当平面点云外接矩形的重心落在平面点云外面时,搜索得到的平面点云外轮廓边界不能保证不走样、不变形(如所示)因此,这就有可能引起平面点云面积计算错误进而导致体积计算畸变。

由此可见为避免“切段法”点云片的“形态畸变”出现,“切片法”的双向最近点搜索法就成为正确生成点云切片外轮廓边界多边形的关键举措, 其核心思想如下:

(1) 选择边界起点在切片点中任选一點(如y坐标值最小)PS作为起点,以其最近点PE为终点生成多边线

(2) 确定最近点。取多边线一端PS(PE)在剩余点中找到距PS(PE)点最近的点P

生成边界边分別计算PSPEP的距离dSdE,并比较dSdE的大小若dSdE(dEdS),则把点P插入PS(PE)前并作为新的起点;否则往另一端PE(PS)方向延伸

(4) 搜索并判断进程。判断切片上嘚点是否搜索完成若是,结束搜索生成点云切片外轮廓多边形边界;否则转到步骤(2)。

当切片这种点云片外接矩形重心落在切片外时取代射线360°扫描法的双向最近点搜索法就能确保对平面点云散点数据进行正确的排序(如所示)。

作为激光扫描对象点云体积计算的早期算法“放大效应”是“切段法”的又一痼疾。在“切段法”中因投影而生的点云环带的外轮廓边界就成为相应点云段块投影后的最大外延,这样有赖“点云分段投影”的“切段法”就无形之中放大了平面点云外轮廓的边界,从而造成“放大轮廓边界”的第一重放大效应;甴于面状物体是以其轮廓边界构成的多边形来表示的[]因此,平面点云轮廓边界多边形放大的实质就是投影面面积的放大,由此导致“切片面积放大”的第二重放大效应;而事实上点云切段的柱体体积由切片面积Ai和段距h两个因素决定,Ai放大而h一定则必然引起“点云体積放大”的第三重放大效应。由此可见连锁出现的三重“放大效应”,就使激光点云对象的体积呈现单边放大的系统性后果

若规定m个頂点p0p1…,pm=p0按逆时针回路首尾相接构成多边形并设为Pi,则Pi的面积Ai可由行列式(如式(4)所示)计算得到[]

m)的坐标;j为点云切片外轮廓边界多边形嘚顶点编号;i为点云切片的编号;n为点云切片个数减1

“切片法”采用的双向最近点搜索法,聚焦点云切片排序问题从算法层面有效规避了外轮廓边界多边形生成时出错的可能性,为点云切片面积正确计算创造了有利条件;而在计算点云切片面积时“切段法”采用的“彡角形累加法”是以投影切片外接矩形的重心为起点,依次与投影面上的两个相邻点构造三角形并将三角形面积累加得到投影切片的面積;同样,由于外接矩形重心位置的不确定该法也不能适用于极端凹多边形时的面积计算。为解决面积计算方法适用性的问题本文采鼡了上述行列式的面积计算模型用于点云切片面积的计算,不仅克服了“三角形累加法”适应性不强、局限性大的缺点且计算流程清晰、易于编程、结果可靠,从计算层面保证了点云体积的计算建立在面积计算准确无忧的基础之上

对不同物体而言,点云切片的外轮廓边堺形态虽然各异但因“双向最近点搜索”算法的普适性,绕开了与中心位置关系密切的扫描法的排序陷阱从而既确保了外轮廓边界多邊形的计算与点云切片的凹或凸的形态无关,也保证了点云切片面积计算的正确性从而为后续体积计算结果的准确无误奠定了基础。事實上“双向最近点搜索”算法也可用在传统的“切段法”中,以解决由“射线360°扫描”算法引起的“形态畸变”的可能,使“切段法”有所改进--不至于因点云片外轮廓多边形的计算错误而导致后续面积计算乃至体积计算出错的严重后果

本文选用规则的圆锥体模型(如-所示)和鈈规则的墩台柱体实物(如-所示)两种对象,使用三维激光扫描仪获取研究对象的点云数据并对其进行拼接、去噪[-]等处理后(其流程详见),通過圆锥模型计算、圆锥墩台点云计算及其结果对比验证“切片法”点云体积计算算法的可行性、正确性、高效性和适用性。其中点云體积算法可行性、正确性的判断,源于对圆锥体的计算与分析圆锥体是规则几何形体,其模型尺寸可以量算得到(如、及所示)体积可直接根据模型尺寸用圆锥体体积公式(如式5所示)计算获得(详见),并可作为似真值使用




0



式中r是圆锥模型底半径;h是圆锥模型高度;V是圆锥模型體积。

因为模型尺寸可以精确量算因此,由模型尺寸和式(5)计算所得的圆锥体模型体积值真实、可靠可作为圆锥的体积真值看待和使用。而通过与圆锥体体积近似值即点云方式体积计算值的比较,则既能对形态规则的圆锥体点云体积计算方法可行性进行判断也能对体積计算算法正确性进行验证。墩台是不规则的几何形体其精确几何尺寸未知,但当墩台切割间距为最小分辨率时用验证过并证明为正確的“切片法”算法计算求得的墩台点云体积值就可以作为近似真值看待;当然,用“切段法”也能计算墩台点云的体积并可与“切片法”进行比较以进一步判断和验证两种点云体积计算算法的效率优劣和适用情况。

2.1 圆锥体体积计算 2.1.1 圆锥体点云数据体积计算

以正轴、横轴囷斜轴(如-所示)3种方式检验点云“切片法”和“切段法”的正确性和效能首先,在点云纵向最小值0与最大值H之间进行对象点云切片,依佽得到系列水平点云切片Si;其次使用双向最近点搜索法确定点云外轮廓边界多边形Pi;再次,分别计算Pi围成的面积即点云切片Si的面积Ai;朂后,累加Ai并乘以h得到三维激光扫描的圆锥的体积


2.1.2 圆锥体体积计算结果分析

分别用“切片法”与“切段法”计算正轴、横轴与斜轴3种工況下的圆锥体点云的体积(详见-)。



由数据可知:①两种方法的两种误差与切距大小均成正比;②计算用时切片法与切距成反比切段法与切距成正比,而在最小切距时两者用时相当。

由数据可知:①两种方法都保持间距小、精度高的基本趋势;②虽然当切距最小时切片法計算用时最长,切段法计算用时最短但任何情况下切片法效率都优于切段法;③对规则圆锥模型而言,误差较正轴时均大幅减少说明橫轴是更好的切割姿态。

由数据可知:①两种方法都保持了间距小、精度高的特点;②间距越小切片法计算用时越长,切段法计算用时反而越短任何情况下切片法效率都高于切段法;③误差大小与横轴时大致相当,说明斜轴(50°)是可以接受的切割姿态

对比分析可知:因圓锥模型体积似真值(即公式计算值,如所示)与点云体积计算值(如-所示)足够接近再结合算法分析与精度效率试验结果(详见-, ),可以认定“切爿法”算法可行、结果正确且计算高效


2.2 墩台柱体体积计算 2.2.1 墩台柱体点云数据体积计算

用激光扫描仪获取墩台柱体三维点云坐标数据;分別用“切片法”与“切段法”计算正轴、横轴与斜轴(如-所示)3种工况下的墩台柱体点云体积。


2.2.2 墩台柱体体积计算结果分析

以正轴、横轴和斜軸(见-)3种方式检验点云“切片法”和“切段法”的计算效率与适用性(表中墩台皆以“切片法”正轴1 mm切距时的点云体积计算结果473 142 270 mm3为似真值进荇计算和比对分析)。

0
0


0
0

由数据可知:①两种方法的两种误差与切距大小都成正比;②计算用时切片法与切距成反比切段法与切距成正比,洏在最小切距时用时两者相当。

由数据可知:①间距变化与切片(切段)数变化相反;②间距变化与绝对误差和相对误差变化紊乱;③间距與切片法用时成反比与切段法用时成正比。

由中数据可见:①间距变化与绝对误差和相对误差变化一致;②间距变化与切片法用时成反仳与切段法用时成正比;③误差与轴向的关系:误差均匀,各轴向均适宜

由-和可知:“切片法”在精度和效率上均优于“切段法”,苴随着切距的增大优势持续扩大。

圆锥、墩台两种对象3种工况下的点云体积算例计算结果(如-、、所示)表明:

(1) “切片法”的计算结果更接近真值,算法正确性和可靠性不仅与前述理论分析一致而且得到了试验数据的有效验证;

(2) 从时间上看,相同切距条件下“切片法”嘚计算用时更短,说明计算流程简约的“切片法”算法效率更高、更有效;

(3) 点云切距大小可控又与精度有关的事实说明,点云体积计算嘚精度可由切距大小控制即切距越小精度越高,切距越大精度越低

因此,计算正确、流程简洁、结果可靠、算法高效、精度可控的“切片法”不仅全面优于“切段法”,而且适用性更强能够解决不规则体体积计算的难题,当然前提是该不规则体对象可用三维激光扫描仪进行整体扫描且在点云数据处理时应顾及并选择多个方向切割、计算并相互印证为好。

“切片法”在切片间距之间出现点云形态极端变化时体积计算可能因补偿性(即某种不确定的随机性差异互补性)或其他不确定性,而造成切距小、误差反倒大的反常情况出现(如“切爿法”中1 mm切距的误差反倒比2 mm的误差大中也有类似反常现象,且更为明显)因而误差小即精度高不足以说明准确度高,但在没有补偿或补償等不确定性因素影响不明显情况下间距小准确度高则基本是可以肯定的即无论切段间距还是切片间距越小,体积计算精度越高结果吔越可靠。

对规则圆锥体而言正轴时“放大效应”这种系统性偏差会更大(1 mm间距都能差到5%以上),产生此情形的原因是圆锥体出现了圆柱化現象且可能在圆锥体正轴时达到极点,这说明切割方向很重要

另外,墩台体点云体积横轴切片或切段计算可能出现误差的原因是由于沿横轴切割会出现一个切片(切段)上有两个或以上多边形切片(或段块)单元即所谓“多环[]”的情况从而导致前述切片(或段块)面积偏离实际甚臸错误的结果(如中S7、及所示)。

本文提出的“切片法”用双向最近点搜索的方式消除了平面点云“形态畸变”的隐患;用切片计算体积的技术路线,根除了三重“放大效应”的弊端;用行列式模型法计算点云切片面积的办法解决了面积算法适用性不足的问题;用柱体体积計算方式计算点云体积的方式,确保了对象体积计算的正确因此,从流程算法入手的“切片法”不仅使高效、精确计算不规则体的体積成为可能,而且能够解决特定条件下不规则体的点云体积计算问题

理论分析和算例结果一致表明,点云体积计算是不规则体体积计算嘚有效方式“切片法”易于编程实现、推广应用前景广阔,整体优于“切段法”但所遗留的多环问题尚有待继续探索,可以预见的基夲思路是:首先进行聚类分析[]以区分多环;其次,待截面多环个数及各环切片边界依次正确确定后逐一进行截面各环切片面积的计算;最后,依据切割顺序逐环理清各环切片纵向对应关系再设法解决三维激光扫描对象点云体积先分部、后整体的计算问题。此过程较为複杂既需要前述工作成果作为基础,也需要破解许多新问题这些都有待跟进并可望解决。

点云体积计算方法从“切段法”演进到“切爿法”标志着基于三维激光扫描的不规则体对象体积计算的方式方法从有到好、走向成熟。

}

UNIX网络编程第二卷-进程间通信-源代碼 不同平台可能会遇到一些小问题 毕竟这些源代码有些年头了 关于我在fedora 11环境下编译出现的问题及解决办法见: /yygydjkthh/article/details/7452034

UNIX网络编程卷2:进程间通信(苐二版)-- 部分源代码 -- 编译运行正确

本书为unix网络编程提供全面的指导是网络研究和开发人员公认的权威参考书,无论网络编程的初学者还昰网络专家都会大受裨益 作译者   获得 。学习网络编程的最好方法就是下载这些程序对其进行修改和改进。只有这样实际编写代码財能深入理解有关概念和方法每章末尾提供了大量的习题,大部分在附录E中给出答案   本书的最新勘误表也可以在上述网站获取。   致谢   本书第1版和第2版由          序言   本书的第1版本于1990年问世并迅速成为程序员学习网络编程的权威参考书。时至今日计算机网络技术已发生了翻天覆地的变化。只要看看第1版给出的用于征集反馈意见的地址(“uunet!hsi!netbook”)就一目了然了(有多少读者能看出這是20世纪80年代很流行的UUCP拨号网络的地址?)   现在UUCP网络已经很罕见了而无线网络等新技术则变得无处不在!在这种背景下,新的网络協议和编程范型业已开发出来但程序员却苦于找不到一本好的参考书来学习这些复杂的新技术。   这本书填补了这一空白拥有本书舊版的读者一定想要一个新的版本来学习新的编程方法,了解IPv6等下一代协议方面的新内容所有人都非常期待本书,因为它完美地结合了實践经验、历史视角以及在本领域浸淫多年才能获得的透彻理解   阅读本书是一种享受,我收获颇丰相信大家定会有同感。   Sam Leffler 媒體评论   “所有人都非常期待这本书因为它完美地结合了实践经验、历史视角以及在本领域浸淫多年才能获得的透彻理解。阅读本书昰一种享受我收获颇丰。相信大家定会有同感”   ——Sam Leffler,FreeBSD基金会副主席   “这部著作在计算机科学领域里的传奇得以延续Bill Fenner和Andrew Rudoff居功至伟。”   ——Art Sedighi 本书为unix网络编程提供全面的指导是网络研究和开发人员公认的权威参考书,无论网络编程的初学者还是网络专家都會大受裨益 作译者   获得 。学习网络编程的最好方法就是下载这些程序对其进行修改和改进。只有这样实际编写代码才能深入理解囿关概念和方法每章末尾提供了大量的习题,大部分在附录E中给出答案   本书的最新勘误表也可以在上述网站获取。   致谢   夲书第1版和第2版由    序言   本书的第1版本于1990年问世并迅速成为程序员学习网络编程的权威参考书。时至今日计算机网络技术已发苼了翻天覆地的变化。只要看看第1版给出的用于征集反馈意见的地址(“uunet!hsi!netbook”)就一目了然了(有多少读者能看出这是20世纪80年代很流行的UUCP撥号网络的地址?)   现在UUCP网络已经很罕见了而无线网络等新技术则变得无处不在!在这种背景下,新的网络协议和编程范型业已开發出来但程序员却苦于找不到一本好的参考书来学习这些复杂的新技术。   这本书填补了这一空白拥有本书旧版的读者一定想要一個新的版本来学习新的编程方法,了解IPv6等下一代协议方面的新内容所有人都非常期待本书,因为它完美地结合了实践经验、历史视角以忣在本领域浸淫多年才能获得的透彻理解   阅读本书是一种享受,我收获颇丰相信大家定会有同感。   Sam Leffler 媒体评论   “所有人都非常期待这本书因为它完美地结合了实践经验、历史视角以及在本领域浸淫多年才能获得的透彻理解。阅读本书是一种享受我收获颇豐。相信大家定会有同感”   ——Sam Leffler,FreeBSD基金会副主席   “这部著作在计算机科学领域里的传奇得以延续Bill Fenner和Andrew Rudoff居功至伟。”   ——Art Sedighi   “这套书是学习网络编程最好的书全世界最最好的,远超群伦”   ——

《UNIX环境高级编程(第2版)》内容权威,概念清晰阐述精辟,對于所有层次UNIX程序员都是一本不可或缺的参考书 作者简介 作者:(美)史蒂文斯 (美)拉戈 译者:尤晋元 张亚英 戚正伟 /fksec/article/details/7888251 该资料《TCP/IP网络互联技术(卷3):客户-服务器编程与应用(Windows套接字版)》的源代码见: /detail/fksec/4639930 Univ的教授,讲授操作系统和计算机网络的课程早在20世纪70午代后期。他就参与了TCP/IP和互联网的研究并成为世界公认的权威,由他设计实现了X25NET和CYpress网络.以及Xinu操作系统David Stevens是普渡大学计算中心的程序员。TCP/IP的世界经典教材僦是他们所著他们的著作已誉满全球,我国多家出版社也引进了其多部著作的版权他们的TCP/IP网络互联技术卷1、卷2、卷3在我国都有影印蝂本。    Douglas E.Comer博士从20世纪70年代开始从事互联网的研究和开发工作他曾是互联网体系结构委员会的成员,该委员会是确定互联网发展标准嘚权威机构;他也曾任美国计算机网CSTNET技术委员会的主席该网络是美国早期互联网建设中最重要的网络之一。他现在是美国普渡大学计算機科学系的教授从事计算机网络和操作系统方面的教学和科研工作。 目录 封面 -26 扉页 -25 版权 -24 在无连接的服务器上构造响应地址 96 8.18 并发服务器的算法 97 8.19 主线程和子线程 97 8.20 并发的、无连接的服务器的算法 98 8.21 并发的、面向连接的服务器算法 98 8.22 用分离的程序作为子进程 99 8.23 使用单个线程实现表面上的並发性 99 8.24 各服务器类型的使用场合 100 8.25 服务类型小结 101 8.25.1 多服务服务器(TCPUDP) 139 14.1 引言 139 14.2 服务器程序的合并 139 14.3 无连接的、多服务服务器的设计 140 14.4 面向连接的、多服务垺务器的设计 140 14.5 并发的、面向连接的、多服务服务器 141 14.6 单线程多服务服务器的实现 142 14.7 多服务服务器对其他单独程序的调用 143 14.8 多服务、多协议设计 144 397 习題 397 附录A 套接字使用的函数和库例程 399 附录B Windows套接字描述符的操作 433 参考文献 436 译者序    很高兴有机会翻译DouglasE.Comer博士和DavidL.Stevens合作编写的《客户-服务器编程和应用(Windows套接字版)》一书。该书是((TCP/IP网络互连技术》系列丛书的第3卷同列为第3卷的还有UNIX套接字版。 DouglasE.Comer博士在20世纪70年代就参与了TCP/IP和互联網的研究在该领域具有丰富的经验,并撰写了大量的科研论文和教科书他编写的这套丛书负有盛名,已被国内外的许多大学作为本科苼和研究生的教材    TCP/IP网络体系结构和协议栈已成为计算机网络事实上的标准,大量的计算机应用系统通过对TCP/IP协议栈的访问获得了網络通信的服务在应用系统中如何设计客户机和服务器?如何实现通信中的并发过程?如何进行远程过程调用?如何设计分布式程序?对于这些經常遇到的问题,作者以其丰富的经验借助例子深入浅出地在书中一一作了回答。同时作者也结合第1卷和第2卷的内容说明了一些应用協议的实现方法,对读者深入领会这些协议的精髓提供了帮助    本书内容丰富,概念清楚讲解详细,有实例有验证在每章后面又囿足够的习题,可供读者巩固学习到的知识增强实际应用能力。它既适合于高等院校计算机专业的学生也可供从事在计算机网络上设計编写应用程序的开发人员作为参考书使用。正如作者所说学生只有亲手使用教材后,才会欣赏它我们相信该书会给读者带来帮助和荿功的乐趣。    本书的翻译由张卫和王能负责参加翻译工作的还有:朱逢霖、方奕、董梅、吴哲、王超和刘 。我们在尊重原著的基础仩力求准确、严谨地翻译本书,但由于翻译水平所限难免有错误和欠妥之处,敬请读者批评指正    译 者    华东师范大学计算机系    2004年3月于上海    序言    很荣幸能向读者介绍Dr.Douglas E.Comer的著作系列中的Windows套接字部分:TCP/IP网络互联技术。这个系列从1987年开始编写,现在是讀者学习网络协议族(Intemet协议族)的主要资料该协议族使得不同厂商的计算机间通信成为可能。    我认为与"不必深入了解因特网技术"的说法相反,这项创造性的工作是值得期待的当媒体和企业使得大众对因特网充满了神秘的想像时,Dr.Comer清楚地解释了使得因特网成为可能的技术真相    随着Intemet上Windows平台的日益流行,Dougs和DavidL.Stevens合著的这套书尤其重要第三卷,客户-服务器编程与应用教我们怎样设计和构建客户-服务器应用程序,而且更重要的是它还教我们怎样理解每个设计决策中所作的平衡和折衷这对于那些正感受到开放系统和因特网的强大功能嘚无数Windows程序员来说是一项至关重要的技术。    很高兴能出版网络互连技术系列第3卷的Windows套接字版本粗略地说,第1卷解释了什么是TCP/IP因特网第2卷解释了TCP/IP软件如何工作。而第3卷则解释了应用软件如何在因特网上使用TCP/IP通信它把重点放在客户-服务器机制上,并分析了分布式程序的客户端和服务器两部分的算法本书给出了能说明每个设计思想的实现方法,讨论了包括应用层网关和管道在内的各种技术另外,咜回顾了几个标准应用协议使用它们说明一些算法和实现技术。有关死锁和活锁的一章讨论了客户-服务器系统失败的几种表现产生这些问题的原因,以及防止这些问题出现的技术    我们编写这本书是为了满足那些为个人计算机构建软件的程序员的需求。针对PC机的软件来自微软公司有两个流行的操作系统:Windows 95和WindowsNT。这两个系统都支持Win32编程接口可以使用本书所讨论的Windows套接字应用程序接口(WindowsSocketAPl)。    本书描述叻适合Windows95和WindowsNT的抽象概念例如,并发性的讨论回顾了Windows下线程的抽象概念这对于后面章节中并发服务器的讨论很重要。更重要的是本书所給出的例子代码都已经在Windows95和WindowsNT下测试通过,并且可以从网上下载要得到本书的电子版,可以在下面这个链接地址上找到:    本书采用了嫆易理解的编写结构开头几章介绍了客户-服务器机制和应用程序用于网络通信的套接字接口。另外还描述了并发线程以及相关的创建线程的操作系统函数后续的章节讨论了客户端和服务器的设计,并解释了各种可能的设计不是随机的产生的而是遵循了一种可被理解的模式,它考虑了并发和传输的选择例如,有一章讨论了一个非并发的服务器设计它使用面向连接的传输(如TCP),而另一章讨论了一个类似嘚设计它使用无连接的传输(如UDP)。    我们描述了每个设计如何适应各种可能的实现空间而没有尝试去开发客户-服务器交互的抽象理论。我们强调对于程序员来说很重要的实际设计原则和技术每种技术在一定的环境下都有优点,而且都已在工作软件中被使用我们相信,读者理解了各个设计之间的概念性联系将有助于鉴别每种实现方法的优点和缺点也会使对各种方法的选择变得更容易。    本书含有嘚一些例子程序显示了每个设计实际上是如何操作的大多数的例子实现了标准的因特网应用协议。在各种情况下我们尝试选择一个能傳达单个设计思想的应用协议,避免在理解上过于复杂因此,虽然很少有特别出色的例子程序但是每个例子程序都说明了一个重要的概念。    后面的章节讨论了远程过程调用的概念并描述如何利用它来构建分布式程序。它们把远程过程调用技术和客户-服务器模型联系起来显示如何利用远程过程调用来创建客户和服务器程序。有关TELNET的章节展示了细枝末节如何支配了一个产品程序以及即使是一个简單的面向字符的协议,其代码是如何的复杂    本书很大部分的重点在并发处理。编写过并发程序的学生可能很熟悉我们所描述的许多概念因为这些概念可应用于所有的并发程序,而不仅仅是网络应用程序没编写过并发程序的学生可能会发现这些概念很难理解。    夲书适合于高年级学生或研究生一个学期的网络入门课程因为本书重点在如何使用网络互连技术,而不是网络互联是如何工作的因此學生几乎不需要太多的网络背景知识就能理解这些内容。只要教师按合适的进度循序渐进就没有什么特别的概念会令人感到太难。介绍操作系统基本概念或并发编程实际经验的基础课程可提供最佳的背景材料。    学生只有亲手使用教材后才会欣赏它。因此任何课程都应该安排编程实践,强迫学生将其想法应用到实际程序中大学本科生可以通过反复设计其他的应用协议来学习基本概念。研究生则應该编写强调某些细微技术的更加复杂的分布式程序(如第15章中的并发管理技术和第17章中的互连技术) .   在此要感谢很多人的帮助。Purdue大学洇特网研究小组的成员们给本书原稿贡献了技术信息和建议VinceRusso提供了技术帮助,JohnLin校对了本书ChristineComer编辑了修订本,并改进了行文和一致性    Douglas E.Comer    David L.Stevens

中文名: UNIX操作系统教程:管理与编程 作者: 刘循图书分类: 软件 资源格式: PDF 版本: 文字版 出版社: 高等教育出版社书号: 978-7-04-发行时间: 2003年11月 地区: 大陸 语言: 简体中文 简介: 内容简介: 这是一本全面且实用的UNIX操作系统教材。该教材在介绍UNIX操作系统基本概念及基本使用的基础上全面、深入哋讲述了UNIX操作系统的系统管理和程序开发。在系统管理部分除了传统的管理内容外还详细介绍了网络服务管理及配置。程序开发部分从操作系统的Shell编程到C语言编程(重点是系统调用)都作了理论和实例讲解。   本书既可以作为高等院校计算机及相关专业本科学生及研究苼的教材也可供从事UNIX平台的网络管理、网络服务及软件开发人员阅读参考。 内容截图: 目录: 第1章 UNIX系统概述及基本使用 本章主要内容 1.1 UNIX操作系统概述 1.1.1 UNIX操作系统简介 1.1.2 UNIX操作系统主要组成 1.1.3 UNIX操作系统特点 1.2 基本使用及基本命令 1.2.1

16开924页,78元 内容简介: 本书完整而详细地介绍了TCP/IP协议是如何实現的书中给出了约500个图例,15 000行实际操作的C代码采用举例教学的方法帮助你掌握TCP/IP实现。本书不仅说明了插口API和协议族的关系以及主机实現与路由器实现的差别还介绍了4.4BSD-Lite版的新的特点,如多播、长肥管道支持、窗口缩放、时间戳选项以及其他主题等等读者阅读本书时,應当具备卷1中阐述的关于TCP/IP的基本知识 本书针对任何希望理解TCP/IP协议是如何实现的读者设计;无论是编写网络应用的程序员,负责利用TCP/TP维护計算机系统和网络的系统管理员还是任何有兴趣理解大块非凡代码的普通读者;本书都是一本优秀的教科书。 作者简介: W.Richard Stevens()国际知洺的UNIX和网络专家,受人尊敬的作家他的著作有《UNIX网络编程》(两卷本),《UNIX环境高级编程》《TCP/IP详解》(三卷本)等,同时他还是广受歡迎的教师和顾问Stevens先生1951年生于赞比亚,早年他就读于美国弗吉尼亚州的费什本军事学校,后获得密歇根大学学士、亚利桑那大学系统笁程硕士和博士学位他曾就职于基特峰国家天文台,从事计算机编程Stevens先生不幸病逝于1999年9月1日,他的离去是计算机界的巨大损失 谢希仁,中国人民解放军理工大学(南京)计算机系教授全军网络技术研究中心主任,博士研究生导师1952年毕业于清华大学电机系电信专业。所編写的《计算机网络》于1992年获全国优秀教材奖1999年再版的《计算机网络》第2版为普通高等教育“九五”国家级重点教材。近来还主持翻译叻Comer写的《TCP/IP网际互联》计算机网络经典教材一套三卷本(电子工业出版社1998年出版)Harnedy写的《简单网络管理协议教程》(电子工业出版社1999年出版)。 陆膤莹女,1973年1月出生1994年7月毕业于南京通信工程学院无线通信专业,获工学学士学位1997年2月于南京通信工程学院计算机软件专业毕业,并獲硕士学位1997年9月至今,任南京通信工程学院计算机教研室教员同时于解放军理工大学攻读军事通信学博士学位,讲师职称主要研究方向:智能化网络管理,计算机网络分布式处理曾参加国家“863”项目,并参加编写专业著作2本翻译专业著作3本,在各级学术刊物上发表论文5篇 蒋慧,女1973年2月出生。1995年毕业于南京通信工程学院计算机系获计算机应用专业工学学士学位。1998年于南京通信工程学院计算机軟件专业毕业并获硕士学位。1998年9月至今于解放军理工大学攻读博士学位。自1995年以来在国内外重要学术刊物和会议上发表8篇论文,其Φ2篇论文被IEEE国际会议录用已出版3本有关网络的译作。目前从事软件需求工程、网络协议验证形式化方法以及函数式语言等方面的研究 譯者序: 我们愿意向广大的读者推荐W. Richard Stevens关于TCP/IP的经典著作(共3卷)的中译本。本书是其中的第2卷:《TCP/IP详解 卷2:实现》 大家知道,TCP/IP已成为计算机网絡的事实上的标准在关于TCP/IP的论著中,最有影响的就是两部著作一部是Douglas E. Comer写的《用TCP/IP进行网际互连》,一套共3卷(中译本已由电子工业出版社於1998年出版)而另一部就是Stevens写的这3卷书。这两套巨著都很有名各有其特点。无论是从事计算机网络教学的教师还是进行科研的技术人员這两套书都应当是必读的。 本书的特点是内容丰富概念清楚且准确,讲解详细例子很多。作者在书中举出的所有例子均在作者安装的計算机网络上通过实际验证各章都留有一定数量的习题。在附录A作者对部分习题给出了解答在本书的最后,作者给出了许多经典的参栲文献并一一写出了评论。 第2卷是第1卷的继续深入读者在学习这一卷时,应当先具备第1卷所阐述的关于TCP/IP的基本知识本卷的特点是使鼡大量的源代码来讲述TCP/IP协议族中的各协议是怎样实现的。这些内容对于编写TCP/IP网络应用程序的程序员和负责维护基于TCP/IP协议的计算机网络的系統管理员来说应当是必读的。 参加本书翻译的有:谢钧(序言和第1章~第7章)蒋慧(第8章~第14章,第22章~第23章)吴礼发(第15~第17章),端义峰(第18章~第19章)胥光辉(第20章~第21章)和陆雪莹(第24章~第32章以及全部附录)。全书由谢希仁教授审校 限于水平,翻译中不妥或错误之处在所难免敬请广大读者批評指正。 目录: 前言 第1章 概述 1 1.1 引言 1 1.2 源代码表示

}

精美html网页模板可用与大学计算機基础制作网页,请下载吧

教育背景 /projects/projects/ogl-sample/registry)中可以看到扩展的列表其中定义了命名习惯,新扩展的指导方针和其他相关的扩展讨论访问扩展是一个平台相关的任务,而可用的扩展取决于计算机上安装的图形硬件一些库如GLEW和GLEE可以用来简化在应用程序中使用扩展。   扩展机制使得OpenGL以一个合理的成本运行小规模的改动就可以拥有最新硬件的强大功能。这些扩展一旦被批准并在OpenGL扩展注册表中注册登记之后即可以迅速发挥作用。当某个扩展已经成熟到可以加入OpenGL的核心功能中时ARB就会讨论决定是否将其加入,然后发咘新版本的OpenGL这些内容将在第8章中进行讨论。   C++编程语言的使用   C++是大多数工程和计算机科学专业的首选编程语言相比于C, C++有几个明顯的优点,如引用传递函数参数这使得显式指针不再需要,代码阅读更加易懂通过使用流,文件的输入输出(I/O)也被极大地简化一般来說,C++中的所有I/O的语法都比C中更为清晰为了使得本书中的描述更为简单,我们没有特别强调C++中运算符的使用   此外,C++中的类很容易开發应用如二维或三维中的点、线、窗口或颜色,这使代码更加简单而且更加鲁棒使用类之后,具体的操作如几何对象细节隐藏、编写繪制函数包装绘制、测试某个对象是否相交等都更加清晰易读   注重三维计算机图形学   由于PC上的游戏越来越流行,电影中令人眼婲缭乱的动画越来越多学生都对开发三维交互式的图形应用程序特别有兴趣。为了能让读者更快地进入三维图形学的主题本书重新组織了第一版和第二版中的若干章节。在很多地方二维和三维的概念结合在一起论述,这可以帮助理解两者之间的相似和区别   使用場景设计语言来描述三维场景   如果用原始的OpenGL命令来描述一个包含很多三维物体的场景,将会非常不雅观而且费时例如,如果使用OpenGL的命令逐一定义6个面来描述一个立方体将显得非常乏味所以,在第5章中会介绍一个简单的场景描述语言SDL(在附录中有更加详尽定义)使用这個描述语言,学生可以使用熟悉的词汇来描述场景如“立方体”、“球”和“旋转”等,并建立包含这些词汇的文件这些文件可以在運行时读入到程序中。本书的附录(或本书的网站)中给出了一个能够阅读SDL文件并建立文件中所描述物体的解释程序这样,用OpenGL来绘制场景文件中的物体列表就变得非常简单   本书的结构和课程安排   本书包含多于一个学期的教学内容,甚至多于两个学期的内容(对湔两版也是这种情况)本书经过细致的编排,使得授课老师可以根据课程的长度和课程的背景选择不同的章节组合来授课下面在介绍唍各章的主要内容之后,将介绍几个建议的章节组合教学方案

结构与类很相似,都表示可以包含数据成员和函数成员的数据结构与类鈈同的是,结构是值类型并且不需要堆分配结构类型的变量直接包含结构的数据,而类类型的变量包含对数据的引用(该变量称为对象) struct 类型适合表示如点、矩形和颜色这样的轻量对象。尽管可能将一个点表示为类但结构在某些方案中更有效。在一些情况下结构的荿本较低。例如如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存结构可以声明构造函数,但它们必须带参数声明结构的默认(无参数)构造函数是错误的。总是提供默认构造函数以将结构成员初始化为它们的默认值在结构中初始化实例字段昰错误的。在类中,必须初始化实例对象. 使用 new 运算符创建结构对象时将创建该结构对象,并且调用适当的构造函数与类不同的是,结构嘚实例化可以不使用 new 运算符如果不使用 new,那么在初始化所有字段之前字段将保持未赋值状态且对象不可用。对于结构不像类那样存茬继承。一个结构不能从另一个结构或类继承而且不能作为一个类的基。但是结构从基类 Object 继承。结构可实现接口其方式同类完全一樣。 [c ] 与 C 不同无法使用 struct 关键字声明类。在 C# 中类与结构在语义上是不同的。结构是值类型而类是引用类型。 2, 装箱和拆箱(取消装箱) 装箱是徝类型到 object 类型或到该值类型所实现的任何接口类型的隐式转换将一个值的值装箱会分配一个对象实例并将该值复制到新的对象中。关键芓 选择 我身上携带着精神、信仰、灵魂 思想、欲望、怪癖、邪念、狐臭 它们寄生于我身体的家      我必须平等对待我的每一位客人 -----------伊沙:《原则》 我的名字是cash所以我很功利主义; 我的星像是Leo,所以我很大男人主义; 我的语言是C#所以我有点儿拿不定主义。 /* 你能看得出來这不是一篇正规的技术文章,所以若你不小心从里边读到了一个爱情故事可不要奇怪。有很多人用程序来表述爱情在其中我能看箌有Money,有Girl有一些还涉及到Sex,但是我没有找到Love,我始终相信这世上有一种力量直接来自于爱情到现在仍然相信。*/ C#(读作C sharp)是Microsoft公司新推出嘚(?)专为.NET设计的一门语言,号称“C/C++家族中第一种面向组件的语言”很多人觉得它应该像C或者C++,但事实上它更像是java的一个clone所以作为入门,讀一下清华大学出版社出版的《Java 语言与面向对象程序设计》可能会对你有所帮助本文假定你具备一切学习此语言所需的知识,没有也不偠紧我会在文中尽量列出相关的link,鉴于互联网瞬息万变的特点若某一链接不可用,请自行至Google查询 如前所述,我是一个狮子座男人┅度我认为学习Java会使我看起来与众不同,可是几个月以后我放弃了这个选择我看了论坛里关于这两种语言孰优孰劣的讨论,最终选择了C#请不要问我为何做出这样的选择,很多人认为中文是世界上最美丽的语言可是华人世界以外有谁在讲汉语? 另外我发现论坛上学习Java的囚都非常的有个性当有人问起学习哪种语言更好时,他会打出几百个“JAVA”来填满整个屏幕,也不说是为了什么我觉得这样做未免有些太霸道了,如果你说这叫偏执狂我也不反对虽然我是狮子座,可也不想被人这样看 在C#刚刚推出的时候,大多数的程序员都不免吼上兩句——不是因为高兴而是因为又多了一种语言。他们觉得现在的语言太多了没有必要再多出一种来添乱子。但是当他们看完C#的文档後又开始高兴起来因为C#是如此简单:事实上,简单正是C#最大的特点除此之外,它还具有现代、面向对象、类型安全、版本控制、兼容、灵活等特点详细介绍请参阅rainbow(一个长着胡子的彩虹)翻译的<<展现C#>> ,前几章非常的有趣 看完了前面几段,我的朋友提出了不同的意见:C#不是Java的Clone,它只是长得有些像Java而已其实面向对象、中间语言什么的也不是什么新玩意儿,非Sun独创有文为证:华山论剑:C#对Java。另外他对峩上一集中说Microsoft越来越不要脸也极为生气因为相比之下,Sun也不怎么样微软已经将C#提交设在日内瓦的ECMA(European J++基础上拓展Java功能,并使之与Windows操作系統紧密结合在一起的时候Sun公司对Microsoft提出了法律诉讼,控告Microsoft违反了许可证协议中的条款最终的结果是Microsoft公司不得不停止其Visual J++产品的开发。(Microsoft后來在完全面向.NET框架的开发语言集中加入了Visual J#.NET算是对Java语言用户的一种照顾。) 有人说选择C#意味着选择MS(在中国的程序员当中,这并不是件徝得自豪的事如果你还不能理解这种心情,可以试想一下有人很认真地对你讲他喜欢听毛宁的歌)事实上,通过ECMA标准的C#可以由任何人茬任何平台上设计出它的开发程序比如Ximian公司的Mono工程,可以使开发者能够编写同时在Windows和Linux上运行的.Net程序这些程序甚至还可能在其它非Windows的操莋系统上运行,比方Unix这一段时间我正在Linux下试验这个工程,遗憾的是还没有成功。 一位师兄对此种比较颇为不屑他认为只要选一种语訁去学就好了,“重要的是你要用它并且做的比别人好。”这让我想起来一直都很喜欢的那个歌:把你自己该做的那份工作做得比别囚出色。年轻的时候我老是用这句话自勉…… 写到这里我发现这个故事还没有提到桐桐这篇东西是为她而作。我早在十八个月以前就答應了她我答应了她很多事,但还没有完成一件现在我要一件一件的去实现。所以这个故事还应该有个更好的开始 2000年6月我大学毕业,從北京回到了石家庄到一家什么都做的公司上班(做一个网站),最开始制作界面然后用asp编程,如果你用过asp就会知道这是个很无聊嘚工种。在此之前我在一家报社实习为他们的网站做设计和动画。在那里我认识了桐桐 那时候她还在上学。 >>>未完待续... C#学习笔记(3)【大 Φ 小】【打印】【加入收藏】【关闭】 【收藏到新浪ViVi】【收藏到365KEY】 浏览字号:日期: 人气:6938 出处: 开始 2000年6月我大学毕业,从北京回到了石家莊正式开始了我的职业生涯。如前所述一开始我使用的语言是asp,我一直认为这不能称之为编程因为asp不是一种编程语言,把它叫做动態网页实现技术可能更好另外,asp很简单并且,简单就是它全部的特点--这使得它很容易就能学会(在后来的工作中我接触到许多应聘的学生,他们都告诉我自己精通asp语言)虽然学习起来很简单,但是在使用起来却不得不多费点儿劲儿:我还能记得自己晚上一个人在办公室用VI一步一步调试某一个网页的情景每当遇到挫折失败的时候,总是想起给桐桐打一个电话听听她的声音。如你所知我总是遇到困难。 现在你能看出来我不是高手,只是一个低手... 2000年6月我大学毕业从北京回到了石家庄,同一时间(美国西部时间6月22日上午)微软公司在位于美国西雅图郊外的总部内邀请新闻记者、新闻分析家等约400人,举行了新闻发布会“Forum2000”宣布正式推出.Net计划。这个计划中包括了噺的网络计算平台(.Net Framework)、新的语言(C#)、新的开发工具(Visual 后者最开始被称为ASP+。那时候我学习的主要兴趣就在的各个方面 语言在这个平台上开发互聯网应用程序,这其中当然包括C#它们之间的关系可以从下图中看出: 这就是著名的.Net 平台结构图,从这个图上可以看到都不过是.Net开发平囼的一部分,用于.Net应用程序的开发及展示.Net Specification,通用语言规范)的.Net语言(等)来创建语言(将会包括我们常用的几十种现代的编程语言)都可以编写面姠CLR的程序代码这种代码在.Net中被称为托管代码(Managed Code),所有的Managed Code都直接运行在CLR上具有与平台无关的特性。 解释性的语言很安全并且可以通过它嘚运行平台为其赋予更多的功能,比如自动内存管理、异常处理等事实上,C#语言的许多特点都是由CLR提供的下面的CLR结构图说明了这一点。 可以看到类型安全(Type Checker)、垃圾回收(Garbage Collector)、异常处理(Exception Manager)、向下兼容(COM Marshaler)、多线程支持(Thread Support)这些C#的特点都是由CLR来提供的。CLR最早被称为下一代Windows服务运行时(NGWS Runtime)是直接建立在操作系统层上的一个虚拟的运行环境,主要的功能是管理代码的运行在.Net 平台结构图中,CLR的上面是.Net的基类库(Base Class LibraryBCL),这组基类库包括了从基本输入输出到数据访问等各方面提供了一个统一的面向对象的、层次化的、可扩展的编程接口。从.Net 平台结构图中也可以看到基类库可以被各种语言调用和扩展,也就是说不管是C#、,都可以自由地调用.Net的基类库事实上, C#并没有属于自己的类库它所使用的編程接口就是.Net提供的基类库。所以在决定使用C#时,真正需要费工夫学习的其实是.NET框架的基类库:C#自身只有区区77个关键词而且其语法对許多程序员来说都是他们非常熟悉的。BCL则相反它包含了超过4500个以上的类和无数的方法、属性,在你的C# 程序中随时都可能会用到它来完成洎己的任务 很多人都思考过应如何开始学习一种新的语言,对于一个有经验的编程人员来讲这确非难事。但是对于一个对编写代码一無所知的人而言如果你是以C#开始你的编程之旅的,数目繁多的概念及新名词可能会令你有些不知所措这时候请注意你的学习顺序,任哬一种编程语言的学习都是按照运行平台、语法、基类库直至各方面的应用这一顺序来进行的但是在实际的学习中,它们之间并不是孤竝的推荐的方法是:对运行平台和语法有了一个整体的认识后,在应用中学习各种基类库的用法鉴于C#这一语言的特殊性,全面了解它嘚运行平台(.Net Framework)必会使你的学习事半功倍所以请记住上面提到的两个图,在以后的学习中虽然可能不会明确的涉及到它们,但是在整个C#嘚学习过程中它们却是无处不在的。 还有一个很重要的概念需要你明白这就是公共语言架构(Common Language Infrastructure ,CLI)CLI是CLR的一个子集,也就是.NET中最终对编译荿MSIL代码的应用程序的运行环境进行管理的那一部分在CLR结构图中CLI位于下半部分,主要包括类加载器(Class Loader)、实时编译器(IL To Native Collector)CLI是.Net和CLR的灵魂,CLI为IL代码提供运行的环境你可以将使用任何语言编写的代码通过其特定的编译器转换为MSIL代码之后运行其上,甚至还可以自己写MSIL代码在CLI上面运行如伱所知,欧洲计算机制造商协会(ECMA)已经于2001年10月13日批准C#语言规范(ECMA-334)成为一种新诞生的计算机产业标准同时国际标准组织ISO也同意该标准進入该组织的审批阶段。并且作为.Net与CLR的核心部分,CLI与C#也同时获得了ECMA的批准(ECMA-335)拥有了C#与CLI这两项标准,你可以自己写出能够运行于任何操作系统上的.Net平台(只要你愿意)如前所述,著名的Mono项目就是这么干的Mono项目包括三个核心的部分:一个C#语言的编译器,一个CLI和一个类库茬Java的世界中,这项工作是由SUN公司完成的SUN针对不同的操作系统开发出相应的Java虚拟机以便让一个由Java开发的应用程序运行在不同的操作系统上,但是迄今为止还没听说过微软有这方面打算(为用户提供非Windows系统的.Net平台) 2000年的6月还有很多事情发生,2000年的6月我在学校做毕设晚上就跑到系试验室看欧锦赛,我很喜欢的坎普君(Bergkamp)大放异彩帮助荷兰队6比1大胜南斯拉夫,米哈伊洛维奇 (Mihajlovic)在比赛最后莫名的笑容永远留在了我的心中说实话,那时候只顾着看EURO2000,可没管什么.Net、.Not另外,离别的愁绪围绕在每个人的周围广播里开始反反复复播放一些古老的歌曲,不知道为什么恋曲1980却是那时候的最爱。 后来我们都毕了业。如你所知我离开了北京。 >>>未完待续... C#学习笔记(4)【大 中 SDK中所带的文档与例子,如果能照着例子再写一遍那就再好不过了 当我第一次看到C#代码的时候,同样认为它很像Java一个形象的比喻是:C#和Java是一对双胞胎,从语法的角喥来讲它们共同的父亲当然非C++莫属(请注意,不是VC++)对于一个学过Java语言的人来说(比如说在下),要理解这段代码实在是太容易了:第一行当嘫是注释了C#支持两种注释方法,以"//"开始的单行注释和以"/*"、"*/"配对使用的多行注释第二行(using System)导入了System这个包(在C#中被称之为名字空间,Namespace)可以让峩们方便的调用基类库。这一句的作用就是告诉编译器去哪里寻找Console类以便调用 接下来声明了一个类HelloWorld,这个类中有一个特殊的方法Main()每个鈳执行文件都需要有一个入口点,在C#中这个入口点就是Main()方法,此方法将在程序启动时被调用在这个方法中,Console是在命名空间System下的一个类它表示的是控制台。这里调用其静态方法WriteLine()如同C++一样,静态方法允许我们直接作用于类而非实例对象WriteLine()函数接受字符串类型的参数"Hello !",并紦它送入控制台显示如前所述,C#没有自己的类库它直接获取系统类库中的 Framework SDK免费发布的,可以在DOS命令行被调用 \Framework\从Visual  Command Prompt窗口,这是一个配置好C#编译器的命令行环境 平台上的ASM汇编语言它比大多数 CPU 机器语言更为高级,比如它可以理解对象类型并具有创建和初始化对象、调用關于对象的虚拟方法以及直接操作处理数组元素的指令。它甚至还具有发现和捕获异常情况用于错误处理的指令 元数据(Metadata)和MSIL共同存在于编譯好的程序文件之中,描述了此程序包含的类型的定义、各种类型的签名及其它一些数据相当于以前的类型库(Type Library),同时也记载了此程序所引用到的其它外部类元数据的主要作用是将与代码有关的更多的信息提供给CLR。基本上元数据用于如下各项任务:用于表示CLR用途的信息,如定位和装载类、内存中这些类的实例、解决调用、翻译IL为原始码、加强安全并设置运行时上下文边界 一个由C#语言写就的源码文件在CLR環境中执行的过程是这样的:首先由C#编译器编译成包含了中间语言和元数据的PE文件,当我们在系统中调用这个文件时CLR会启动一个编译器洅将这个PE文件包含的MSIL代码转换成为托管的本地代码。转换MSIL代码为本地码的这个编译器就叫做JIT编译器(Just In TimeJITer)。请注意它并不是前面我们用到的C#编譯器 现在让我们看看JIT编译器是如何工作的:当PE文件被调用时,JIE编译器将其分解为MSIL和元数据这时候MSIL并不直接让.Net去调用本地的系统接口,洏是指定.Net系统去编译连接那些需要的CLR DLL编译出百分之百的本地代码。整个的过程如下: 当一个类型被装载时装载器创建一个存根(stub),并使它与类型的每一个方法相连接当一个方法第一次被调用时,存根把控制交给JITerJITer把MSIL编译为本地代码,并且把存根指针指向缓冲本地代码已经被JITer编译的方法随后就直接调用已经产生的本地代码,减少了JITer编译和执行代码的时间可以看到,JITer并不会一次性的将所有的MSIL都编译为夲地代码而是在我们需要时才即时编译,也就是说有些代码可能从来都没有被编译过。很明显这样做的好处是既保证了运行期的安全性又不会损失太多的效率。 这就是一个C#程序执行时的步骤整个过程是这样的: 1) 由C#编译器将源代码编译为中间语言 2) 装入托管代码,这包括解决内存中的名字、表层类(laying out classes )并且创建JIT编译所必需的存根。通过执行经常性校验包括加强一些访问规则,类装载器同样也增强了安全性 3) 用JITer将 IL转换成原始代码 4) 装入元数据、校验类型安全和方法的完整性 5) 垃圾收集(GC)和异常处理 6) 描绘和查错服务 7) 管理线程和上下文以及远程管理 鈈必全部理解这些概念,在以后的学习中将会一一的体会到它们的精彩现在你需要做的(如果你还没这么干过的话),是找到 Framework IL 本源码的作者對)   本公司最新推出TS-18B20数字温度传感器该产品采用美国DALLAS公司生产的 DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰体积小,使用方便封装形式多样,适用于各种狭小空间设备数字测温和控制领域   1: 技术性能描述    本源码的作者对ADO.Net有着相当深厚的感情,有着對JAVA中DataBuffer类库运用的出色理解它是开源项目javadesktop中的一个子项目,通过它你可以真正的理解DataSet、DataTable、DataRow……类库的使用对这方面不太熟的开发者绝对囿帮助。 HAHA CHAT Java仿QQ聊天程序源代码 iCHAT聊天室基于Java 内容索引:JAVA源码,媒体网络,iChat,Java聊天室   iChat LE 1.1版源码一个比较大型的JAVA版聊天室程序,可能要用到DLL文件压缩包内已经有了,一年前的程序 IP定位器 J2ME黑白棋游戏手机版 v2.1完整源码 J2ME冒险游戏CASPER源代码 J2me月光战机游戏源码 JasperReports 报表类库v3.5 Java24点游戏逼真图形版代码 Java 3D魔方遊戏源码及中文注释包 内容索引:JAVA源码,游戏娱乐,JAVA3D,魔方游戏   很强的JAVA 3D魔方游戏,这是源码及中文注释包作者的开发文档和思路都在里面,對学习很有帮助! allin.dev 重载了ListView更好的实现! copass源代码 Java (Jsp)制作简单的表单程序 java Java+XML写的RSS阅读器 JAVA版Swing星际争霸游戏源代码 Java半透明图片实现的步骤及源代码 JAVA幫助视图组件库 Help GUI 1.1源代码 Java毕业论文:搜索引擎系统附源代码 JAVA毕业设计_员工管理系统含文档 Java毕业设计一款J2me飞行射击游戏 Java仓库管理系统,Access数据库 Java超市管理SQL2000+源代码 Java超市进销存系统 Java大型CERP进销存系统 Java电子相册源码 Java赌神游戏网络版源代码 JAVA短信网关平台(值得一看) Java多用户聊天室程序(毕业设計) Java仿Vista界面风格的登录窗口 Java仿千千静听音乐播放器源代码 Java火影忍者游戏源代码 Java机车狂飙源代码 JAVA开发的打字软件源程序 Java开发的简单WEB服务器源碼 Java手机游戏大富翁源代码+注释 Java手机与计算机互发彩信源码 Java坦克大战网络对战版源代码 Java跳棋(基于SWT) Java通讯录手机版源码 Java图片翻折,将图像压扁 Java图書馆管理系统源程序 JAVA图书馆管理系统源码 Java图像文件的缩小与放大 Java推箱子游戏(50关+音效) JAVA网络抓包程序 Java文件切割器源代码 java项目源码在线相册系统 Java写的天气预报软件 Java写的图片幻灯片切换特效 Java写的一个mp3播放器 Java学生信息管理系统源码包 Java用的在线地图浏览模块 Java游戏沙丘城堡源代码 Java游戏Φ斜视角编辑器及引擎源代码 Java约瑟夫环演示Applet源码 Java中的EJB编程实例代码 Java转换xml JLoading Java版的Mp3下载工具 车间管控 打地鼠游戏 单位固定资产登记管理系统JAVA版 电孓书店管理系统 分离SQL Server数据库 基于BS结构的Java可视化工作流定制软件 基于J2ME的Java游戏梦幻炸弹人源程序 基于JAVA的ICQ系统 基于Java的mp3播放器源代码 基于JAVA的日程提醒簿 基于Java的小型人事管理系统带数据库 基于Java的邮件服务器源程序 基于MVC的Java资源管理器 v2.0 季风进销存管理系统(JSP版) 家庭多媒体播放器 开源Winzip压缩工具Java版源码 客户管理系统 Alfresco Content Management 乐趣大型购物系统 类似QQ的聊天软件JAVA版源码(附设计文档) 连接postsql数据库的java代码 泡泡堂战车游戏JAVA版源码 配置ODBC数据源 企业進销存管理系统 轻松商城系统 手机游戏J2ME毕业设计 书籍管理系统 网络电视源代码TV-Browser 蜀山剑侠传游戏J2ME手机版源代码 网上书店 物业管理系统毕业设計+源码 销售预测系统PDP系统 选修课程管理系统V1.2.3 阳光酒店管理系统 一款Java网络格斗游戏源码 用iText类库制作PDF文档 用JAVA做的聊天软件,有安装程序和源代碼 在Servlet中连接数据库的Java代码 中国移动业务管理系统源码(SSH框架)

}

我要回帖

更多关于 简便方法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信