IT技术博客

IT技术博客,精选各种精华文章供您阅读,是您学习各种IT技术的博客优选之地

socket编程之我的应用

        以往上位机程序我们一般都是通过232、485和PLC通信,232通信受到距离的限制,485距离能够满足要求,也有不足的地方受环境干扰比较大,切传输过程中速度不怎么快,新的课题通过网口与PLC通信,西门子的PLC我们用过网口作为传输介质,速度可以而且使用起来方便,只需一根网线就可以调试程序了,这次的课题是以OMR的PLC作为控制PLC,上位机程序(也就是大家说的组态软件)我们自己来写,我会写出一系列的课程把我们实现的过程与大家一起分享,也希望做这快的朋友一起来讨论。   今天是入门课利用socket实现TCP/IP通信编程,实现两台电脑通过IP互联。   socket编程的教材网上搜罗下还是很多的,思路基本上也是一样的,程序分两部分客户端和服务器端 第一部分 服务器端  一、创建服务器套接字(create)。  二、

生命如此脆弱

生命如此脆弱   今天早上接到爸打来的电话:“你舅身体不好,去医院检查了,说是肝癌,晚期!”。我一下子懵了,心沉到了底,特别空,这已经是第二次接到这样的电话了。     “那大夫怎么说?”   “还能怎么说,跟你外公一样,已经开始疼了,估计八九不离十,明天去县医院在看下。”   “那能保多久,好不容易生了个儿子,还罚了款,乔乔(我表妹)今年刚上大学,这样以后的日子怎么过?”   “小风(我大姨的儿子)今天跟你舅去陶庄(镇医院)去看的,B超照了下,那大夫脸色就不大好。小风一看就知道出事了。”   “怎么会这样,外公去年刚走,怎么现在又......”   “上次你外公那个的时候,就让他去检查,以防万一。谁晓得,去了陶庄又回来了,舍

Windows PowerShell 2.0语言之扩展类型系统

参与博客评选,欢迎大家为我投上宝贵的一票,谢谢!http://2010blog.51cto.com/274616  本文将简要介绍PowerShell的类型系统,以及内置的类型适配器和类型扩展如何协同工作,以实现所有代码中存在的类型。这里的扩展类型系统不仅仅是对于标准的.NET、COM和WMI对象类型的扩展,也对所有未知扩展公开。可以为活动对象添加属性和成员或者修改类型定义,这样所有该类型的对象都会自动添加新的成员,从而通过为目标对象添加自定义属性和方法来个性化定义运行环境。在学习如何修改对象和类型之前,通常会创建一些操作对象的常用函数,所以必须为函数名添加前缀或后缀以便于辨别函数操作的对象。如果将这些函数改成方法作为扩展类型,即可得到更短的类型名,从而不必记忆过多的函数名。 PowerShell可以灵活地将二进制对象转换为适当格式的文本,这样允许用户将一系列对象转换后填充到表格

微软发布Silverlight 5 Beta新特性

  微软Silverlight是Rich Internet Application(RIA)应用开发技术之一,其强大的功能以及丰富的用户体验已经得到广大开发人员和终端用户的肯定。在今天的Silverlight FireStarter大会上,微软副总裁Scott Gu正式宣布Silverlight 5 Beta版目前所提供的最新功能,并且由微软不同开发团队对Silverlight 5新功能进行了同步演示。在这次大会上,微软介绍Silverlight 5将推出40多个新的功能,分别支持Silverlight多媒体领域,Silverlight桌面应用领域,Silverlight的性能提高和加固,以及新的开发特性等。 本次大会上,Scott Gu公布了部分Silverlight 5 Beta版的新功能,这些新功能多数来自“Silverlight 5 Wish ListR

JS在线打字练习

JS在线打字练习!是不是很怀旧哦!呵呵! 总字数:0 键入字数:0 错误数:0 正确率:0 速度:0 用时:0 Three passions, simple but overwhelmingly strong, have governed my life: the longing for love, the search for knowledge, and unbearable pity for the suffering of mankind. These passions, like great winds, have blown me hither and thither, in a wayward course, over a deep ocean of anguish, reaching to the very verge of despair. I have so

基于Windows XP搭建WinCE6.0开发平台--最新最省(VS2005+XP SP3)

得益于广大技术爱好者的无私奉献和共享精神,自己搭建WinCE6.0 R3开发平台的过程基本顺利,但在搜索过程中发现不同的网友给出了不同的版本,有的差别还不小,我就根据自己的经历,整理一下最新最省的方法步骤,此法缺点是需要联网在线安装,全部装好预计要8小时以上,供大家参考:   -官网步骤:http://www.microsoft.com/windowsembedded/en-us/products/windowsce/getting-started.mspx   -官网更新:http://msdn.microsoft.com/en-us/windowsembedded/ce/dd430902.aspx 【安装步骤】(适用XP SP3系统,至于Vista和Win7可参考上面官网或其他网友打上相应的补丁即可): -1.安装WINCE6.0集成开发平台VS2005中文版(其实我蛮想装英文版,但手

silverlight for wince 6.0 的项目开发模板

时间:18:21 2010-12-1 环境:开发环境:VS2008 +XAML2CPP.EXE + SWE 2 + BLEND 2/3运行环境:WINCE 6.0 R3硬件加速: DirectX 联系:网站:     http://www.pvontek.comE-MAIL:    pengxinglove@gmail.com   参考资料 [1] http://hi.baidu.com/419836321/blog/item/2a9615221450e94aad34deba.html     背景       使用SWE开发项目有一段时间了,但由于WINCE6.0上,MS没有提供项目开发模板,每一次新建项目都要重复或修改对于一个已有的项

关于ASP.NET 中站点地图sitemap 的使用

  .codearea{ color:black; background-color:white; line-height:18px; border:1px solid #4f81bd; margin:0; width:auto !important; width:100%; overflow:auto; text-align:left; font-size:14px; font-family: "Courier New" , "Consolas" , "Fixedsys" , "BitStream Vera Sans Mono", courier,monospace,serif} .codearea pre{ color:black; line-height:18px; padding:0 0 0 12px !important; margin:0em; background-colo

Windows PowerShell 2.0语言开发之脚本签名

脚本签名用来保护代码在发布之后,用户使用之前不被篡改。数据源发送方使用自己的私钥加密数据校验和其他与数据内容有关的变量,完成对数据的合法“签名”;数据接收方则利用对方的公钥来解密收到的“数字签名”。并将结果用于数据完整性检验,以确认签名的合法性。 1 代码签名如何工作 签名代码确保程序对目标用户无害,其背后存在复杂而严密的操作来保证签名的有效性。当处理可执行代码签名时存在代码的完整性和来源的有效性问题,为此需要确保代码没有被篡改。如需要确认没有人中途截取并替换发送端的代码,并确认文件的来源是其标识的来源人。 1.1 保证脚本的完整性 为了验证将要执行的代码确系出自原作者手中并没有任何增删,在发送代码给其他人之前可以用算法获取代码的消息摘要,计算机科学中已经提供了相应的函数用于计算数据流的校验和。一些流行的能获取消息摘要的算法包括MD5和SHA-1,这些函数有时称为“哈希函数”,它们

TechEd第一天

今天的旅程注定是个难忘的囧途,跟老大一起上演了一根烟引发的追火车事件… 到了北京之后,已经是3点多了,所以开始的梁念坚的云的故事没有听到,直接从第二场开始听了,这里记录一下。 第一场 潘正磊关于开发工具和平台的讲演,中间涉及到了Windows Azure,Silvelight,WindowsPhone7,VisualStudio2010等,相应由各个方向的专家通过Demo展示给大家, 其中,VisualStudio2010管理项目的生命周期,从客户的需求到项目经理的任务分发,再到开发人员的实现,测试人员的Bug反馈到项目经理,然后由项目经理再将Bug下发到开发人员手中,VisualStudio2010在中间起了重要的作用,值得说明的是这个需求分析的表单时可定制的,很灵活。 Azure部分,使用最新的云端开发模板1.3可以创建一个可选择云端环境的项目,也做了一个登陆验证的演示,可以

DatagridView 经典用法总结(中)--附有可下载Demo

知识点:一:DatagridView 导出数据到Excel(两种方法)     二:DatagridView 中显示密码列     三:WinForm最简单两GridView同步滚动     四:DataGridView添加任何控件   一.DatagridView 导出数据到Excel                                  有两种方法:一种是直接利用I/O读写去生成非标准格式的xls文件,速度很快。另外种就是直接使用EXCE

Expression Blend入门

 本文将介绍如何选择合适的开发环境做WPF、SilverLight或者WP7,以及一些简单的Demo。 如果你想创建WPF、Silverlight或者是Windows Phone项目,你可以按照下面来选择相应的环境搭建:   开发Windows Phone Windows Phone Developer Tools 你可以只安装这个就能进行WP7的开发。这个是All-In-One的安装包,包括一个专门为开发Windows Phone应用程序的Expression Blend、Visual Studio以及开发手机游戏的XNA Game Studio! 具体的清单如下: 安装Windows Phone Developer Tools所包含的工具集合如下:     * Visual Studio 2010 Express for

网站架构,从小型到支持高负载的大型网站发展之路

    云计算挺火,一些朋友也动了搞搞云计算的念头,但无奈市场性的概念太多,有点眼晕,便托我给讲一讲。     但是我对云计算也不甚精通,一直从事高负载大并发网站架构的研究,看了下云计算相关的资料,发现其技术起源、发展和我研究的东西是相通的,至于云计算要搞什么商业模式、要咋发展,这个是行业性难题不是我这颗葱能讲清楚的,但云计算用到哪些技术,这些技术为什么产生我倒是可以讲一讲的。把技术根源、发展基础搞清了,以后该咋进行商业模式突破就看朋友们各自去怎么理解了。     因此,便产生了下面《云技术技术溯源》这篇入门型交流PPT,跟朋友们交流完后,觉得可能还有点用,特地分享给大家。     有一点请大家注意:该PPT原本要传到百度文库上,但百度文库认为这篇PPT内容质量太差(我琢

【我来解惑】.Net应该学什么怎么学(二)

接上篇《【我来解惑】.Net应该学什么怎么学(一)》。 二、C#面向对象基础        初学者学面向对象的时候没必要(也做不到)把面向对象学的非常透、非常深,因为如果想深刻的理解面向对象,必须要有大量的编程经验才能真正体会面向对象到底是怎么回事、有什么好处。以前听到过有人建议初学者学习设计模式,我认为纯属误人子弟,对于初学者来说没有大量的编程经验,根本看不懂设计模式在说什么。这个阶段只要弄明白怎么声明类、什么是访问级别(主要是public、private)、什么是属性、字段、方法、什么是继承、什么是override就可以。面向对象有三个特性:封装、继承、多态。对于初学者来说理解多态是非常困难的也是没太大必要的,这个阶段只要能掌握封装和继承就可以。   三、简单的WinForm编程    

开源发布F#写的人工智能AI项目。

1.      “AI”是用F#写的一个人工智能软件兴趣开发项目。第一个版本正式发布咯,采用微软公开源代码协议。 Codeplex发布和下载地址:http://ai.codeplex.com/releases/view/56684 需要安装了F#组件的VisualStudio 2010来编译项目。本次的程序使用命令行工具进行交互,使用上让人想起早先的文字MUD。关于使用方法参见下图。 2.      AI软件发布了第一个版本:0.0.1。基本上就是构思中的样子,这个软件描述了假想世界中的虚拟机器人和人工智能系统。它知道自己有一个机器人身体,知道自己有眼和鼻但还不清楚它们有什么用处,因为在这个假想的星球上眼到之处都是白色,因此视觉、味觉和位置信息在

《重构之美》-开篇

关于代码的重构,已经是老调常弹。自Martin Fowler《重构》一书横空出世,到如今已有十年光景,对于重构,许多程序员已经耳熟能详。然而,每当我们面对项目压力时,常常会将重构置之脑后,抛到九霄云外。理由足够充分,言之凿凿:功能还未完成,何谈重构?究其原因,是因为我们还未将重构当做习惯。即便现在的许多IDE已经支持自动完成常见的重构手法,我们仍然会忘记,仍然会忽略。只因重构不能直接产生价值,只因我们还没有看清重构之美。 本专栏试图重新擎起重构的大旗,为改善既有代码的设计,使重构深入人心,来一次“歇斯底里”的鼓吹与呐喊。重构并非微不足道的小事,若人人皆能学会运用重构之利器,或许,开发人员的生存环境就会变得美好。美的代码,美的结构,美的设计,总是那样的赏心悦目。我们向往美好的环境,这是天性使然;那么,为何我们不能营造美好的代码环境? 如何呈现重构之美?关键在于发现丑陋而不堪忍受。对丑

Silverlight+WCF 实战-网络象棋最终篇之对战视频-上篇[客户端开启视频/注册编号/接收视频](五)

前言: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->近期在忙点“秋色园”的事情,所以网络象棋这一块文章就写的相对慢,而且刚好接上篇:Silverlight+WCF 实战-网络象棋最终篇之非线程阻塞倒计时窗口(四)  之后,是一些代码修改,会比较枯燥,所以没接着写,不过有昨天有网页表示对象棋在线演示中的 对战视频 感兴趣,希望可以提前看到代码,所以本次就提前写里面的对战视频这一块。由于对战视频采用控制台程序,并没有在服务器运行,所以在线演示版本里一进入显示是显示“未链接”的提示。 作者:路过秋天 博客:http://cyq1162

WinForm控件设计:DataGridView导出数据

 做WinForm开发离不开一些基本的控件,作为数据列表显示控件中,其中最为重要的要数 DataGridView,以前用的是一些第三方控件,提供了比较灵活和方便的功能,比如:根据所见即所得导出数据到Excel 或者 文本,没办法自力更生才是生存之道。     DataGridView的数据导出功能在网络上搜索后,有一些同仁实现过,但有些是需要依赖Excel ,这种方式不但耦合性强,性能也差,为了一劳永逸的解决这个问题,特改写了代码,在此提供给各位同仁,欢迎斧正。 1、首先,看使用方法: dgvProjectList.ExportToExcel();或者 dgvProjectList.ExportToExcel("项目列表");        如果不使用数据导出功能,不会对

避免复制与粘贴

  《重构之美》之一 在开发过程中,当你发现代码可以Copy-paste时,就意味着代码出现了重复。这是一种典型的反模式。William J.Brown等在著作AntiPatterns-Refactoring Software,Architecture, and Projects in Crisis(即《反模式——危机中软件、架构和项目的重构》)中认为这种形式的复用让开发的代码行数量虚假地增加,但是不能像其他形式的复用一样降低成本。Copy-Paste代码的方式违背了DRY(即不要重复你自己)原则,使得多处地方出现了同样或者相似的代码。这是一种征兆,一旦在方法中或方法之间开始Copy-Paste操作,就意味着需要采用Extract Method重构手法。在提取方法之后,还可以根据情况利用Move Method重构手法,将其搬移到一个类中,然后在原

金山安全卫士代码批评

金山卫士开源了,参见金山卫士开源计划。 抱着学习研究的目的下了一份看看。看了一些代码,觉得被忽悠了。中国知名通用软件厂商,民族软件业的一面旗帜就这代码水平?代码显然达不到工业级的标准,只能算是实习生练手的水准。为了给有意拿这份代码当学习资料的初学者提个醒,不被误导,做出了一个艰难的决定,写博文来评论金山安全卫士的代码。 先说说代码中的几个突出问题 C++的应用不过关。该用const和static的时候不用代码封装做的不好,调用者知道被调用者很多细节,且对被调用者做了过多假设。文件和函数命名不规划。不能表达内容,且容易引起误解测试靠打印而不是assert,很难自动化验证。且测试代码未与工程代码分离。太多的if-else而不会用表驱动函数逻辑不严格,有明显漏洞。   一点一点的看   1 C++的应用不过关。该用const和static的时候不用  pp