IT技术博客

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

Linux下C语言多线程,网络通信简单聊天程序

功能描述:程序应用多线程技术,可是实现1对N进行网络通信聊天。但至今没想出合适的退出机制,除了用Ctr+C。出于演示目的,这里采用UNIX域协议(文件系统套接字),程序分为客户端和服务端。应用select函数来实现异步的读写操作。      先说一下服务端:首先先创建套接字,然后绑定,接下进入一个无限循环,用accept函数,接受“连接”请求,然后调用创建线程函数,创造新的线程,进入下一个循环。这样每当有一个新的“连接”被接受都会创建一个新的线程,实现1对N的网络通信。在服务端程序中线程中用一个buffer读写,为了避免错误,这时就要给关键代码加上互斥锁work_mutex,具体见代码。   服务端代码 1 #include<stdio.h> 2 #include<stdlib.h> 3 #inc

CRM 2011 RC中的新特性(3)——客户服务管理方面

    CRM2011 RC版本中,客服管理方面中,新特性主要体现在知识库文章方面,以往版本的CRM中,文章的搜索使用了单独的页面进行管理,如下图所示     如果需要对文章进行搜索,需要点击左上侧的下拉框,设定搜索方式,然后输入搜索内容、目标文章的主题以及搜索选项,然后点击搜索按钮,才开始进行搜索,下图就是使用关键字进行搜索的界面截屏。     在CRM2011中,放弃了这种使用方式,以标准的搜索框取而代之。如下图所示。     从上图可见,以往版本的那种使用下拉框设定搜索方式的已经被ribbon工具条(1号区所标识的红色方框)所取代,而搜索内容,也直接在上图的2号红色方框所标识的文本框中输入,而且可以使用通配符“*”用于文字匹配,看

ASP.net的地址重写(URLRewriter)实现原理及代码示例

ASP.net的地址重写(URLRewriter)实现原理及代码示例 吴剑 http://wu-jian.cnblogs.com 一、概述 访问者输入:http://wu-jian.cnbolgs.com/default.aspx,实际请求和响应的地址却是:http://www.cnblogs.com/wu-jian/default.aspx, 这就是UrlRewrite,除了实现二级域名功能,它在简化用户输入地址、SEO、网站版本迭代更新等多个方面发挥着重要作用。   微软曾在.net framework 1.1中提供过一个名为URLRewriter的小工具供开发人员轻松实现UrlRewrite,下载地址为:http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MS

公司研发峰会主题在线讲稿:架构、需求、敏捷个人

本周五还有一个峰会主题要讲,因为这个主题更多的是讲如何做业务架构的,所以我把之前的标题《使用TOGAF做产品开发》改为《使用TOGAF来做业务架构》。在我发布这些内容时,有些人也希望我发布一下去年的研发峰会的主题讲稿。其实这些讲稿之前都已经发布过了,为了让大家看得更方便,我在本篇都列出来。 业务需求分析入门 信息系统开发平台OpenExpressApp 企业架构建模-ArchiMate语言 架构师成长之路-个人学习经验分享 使用TOGAF来做业务架构 敏捷个人结果系统 - 认识自我,管理自我   敏捷个人QQ群(非IT人员):128020082 推荐:你可能需要的在线

ESB产品架构系列之通道设计

1.概述       消息处理管道是ESB架构的一个核心部分, ESB的核心有消息处理器分为两部分,一部分是路由处理器,一部分是端点处理器。当然,我们的基础组件也会适时的在两部分的处理器中间,拦截加入多个基础组件处理器。例如,日志组件,会在各个部分加日志处理器,以记录ESB运行的日志 。在(图1-1)中只是一个简单的通道,在这个通道中没有分支,路由处理器也只有一个,在实际的使用过程中当然没有简单,在路由处理器可以有多个,Endpoint也可以拥有多个。当整个通道的分支过于复杂的时候,建议还是把它看成一个业务流程,交他专业的BPM应用来做,这样不但可以减少ESB复杂度,而且可修改性也能有一个大的提高。    在实际的开发过程中,我们可以使用责任链的模式。一条责任链就是一个通道,消息处理器就是责任链中的一个个ha

CES2010:Windows Phone 7 代号为“No Donut” 更新细节提前曝光

早上在ZDNEt上看到微软 CEO 史蒂夫鲍尔默的 CES 2011 主旨演讲北京时间为 1 月 6 日周四上午 10 点 30 分[快了](PST 时间 6:30 PM),这页有具体的时间换算。你可以在 microsoft.com/ces 或 Facebook 页面观看全程直播视频.                 2011 年将会是微软消费者领域的重要一年,而 CES 2011 也正是微软今年的首场重大会议。 今年的 CES 的看点有哪些?Windows Phone 7 更新、Windows 平板、Google TV/Apple TV 的竞争产品、Windows 8 与 Windows on ARM、Surface 平板(?)、还甚至有新的 Zune HD. 针对本次提到Windows

GP(Geoprocessing)服务的发布与调用

1、什么是GP服务     GP服务是Geoprocessing服务的简称,Geoprocessing包含了一系列地理数据处理的功能,像做缓冲区分析、叠加分析、以及对栅格数据制作阴影图等等。在桌面软件中可以通过ArcToolbox中的工具直接调用Geoprocessing的功能,而如果期望通过web来调用GP的功能,就必须借助于GP服务了。Esri的帮助文档中介绍了发布GP服务的两种方式:  l Publish a geoprocessing toolbox. Each tool in the toolbox becomes a task in the geoprocessing s

基于Team Foundation Server 2010 Scrum 1.0与持续集成的最佳实践

本文适合对Team Foundation Server 2010的部署和管理、模板配置有经验的人员阅读。 在阅读本文之前,需了解Scrum的一些基本知识;其次,需对Visual Studio Scrum 1.0模板有基本的了解。 Scrum的资料:http://msdn.microsoft.com/en-us/library/dd997796.aspx Scrum 1.0的资料:http://msdn.microsoft.com/en-us/library/ff731587.aspx 每个Sprint正式开始之前的准备 在Scrum 1.0中正式创建一个Sprint之前,要将所有的Backlog填写完成,与团队成员一起分解Task,将Task以“相关”的关系与对应的Backlog进行关联以方便开发人员在浏览Task时查看相关Backlog的描述(Task不能拥有两

PowerShell 2.0管理事件日志(三)管理和创建事件日志

事件日志是操作系统用来保存本身及其他程序信息的工具,本文将会介绍如何通过PowerShell脚本阅读事件日志并创建新的日志条目。Windows系统中包含多种事件日志,在Windows XP系统中包括4种主要的事件日志。即应用程序、系统、安全性及Internet Explorer日志,如图1所示。这样用户可以方便地从系统中提取和查看日志,从而了解系统的当前运行情况。本文将会介绍如何通过PowerShell管理和创建Windows事件日志的方法。 1 管理事件日志 在使用事件日志时需要管理多个组件,其中最重要的是事件日志文件的大小。为了能够包括所需时间内的所有特定系统事件,通常情况下日志文件需要足够大,但是读取过大的文件将会耗费大量的时间。 (1)选择来源 使用事件日志时必须能够知道作为记录使用的日志,为此需要查看事件日志的源是否已经注册,实现这个目的的简单方法是使用WMI类Win32

[Project Euler] 来做欧拉项目练习题吧: 题目001

                            [Project Euler] 欧拉项目练习题001                                                 周银辉    关于Project Euler的一点介绍:  哈哈,两个月没更新博客了,因为跑去做Project Euler上的练习题了,非常非常乐意向大家推荐这个网

关于C# 中的Attribute 特性

.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:12px; 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-color:#fff !i

月份信息二维坐标图绘制---(绘制箭头完美算法)续II

      今天中午,大家都在睡觉的时候,本人忙里偷闲找了点资料看了下,箭头算法终于到了最终版本了。非常感谢各位前辈在网上的资料,特别是MFC,JAVA的资料比较多。这里终于也可以告一段落了。       以下是C#的箭头算法,源代码如下:  1         /// <summary> 2         /// 绘制箭头 3         /// <

电信运营商系统集成项目需求调研日志

最近正在负责一个套产品的实施工作,虽然我们的产品在功能上已经覆盖的相对比较完善了,但是在某些地方还是不能满足个别客户个性化的需求,因此得对这种具有个性化需求的客户展开额外的需求调研工作。我们的产品实施属于是系统集成项目实施,这套产品的正常运转需要和别的很多系统进行数据交互,出了客户对产品自身的功能、性能需求外,还得对第三方软件系统的集成进行详细的需求调研。     本次实施的项目主要用于解决电信运营商在处理客户投诉方面的相关问题,涉及的内容和需要集成的项目也很多。主要是为了提高运营商客服人员在进行客户投诉的一次性解决率,实现客户投诉预处理,减低运营商客户投诉处理流程,从而提高用户满意度。     其中,在实现客户投诉预处理的过程中,需要许多额外的软件系统支撑,已使客户投诉处理更加简单化。包括业务支撑系统业务数据接入、移动综合网管的基站小区告警数据接入、综合电子运维的故障

Delphi XE的RTTI增强,动态Hook某些内部事件

    Delphi2010之后的RTTI做了很大休整,现在用起来很爽了哦。甚至可以获取某些类的内部私有单元,然后为其赋值!讲这个RTTI增强的,可以参考网上的多个博客内容,我列举一下: Delphi2010RTTI的增强 Delphi的Anymouse方法探秘 万一的Rtti系列   我这里的主要目的是挂钩某些内部私有事件,然后增加上一些自己的处理过程,这里我以TMenuItem的私有内部事件FOnChange作为例程。这个私有事件在菜单内部绑定,我们平常状态下,在外部无法更改!但是XE之后这个问题不在存在,使用它的全新RTTI,可以很容易的获得一个类对象的基本上所有的类的字段以及方法和属性等。   代码 begin rttiContext := TRttiContext.Create; rtype := rttiContext.

Windows 7 应用程序崩溃恢复

     从Vista 到Windows 7 这两款操作系统都带有应用程序恢复和重启(ARR)功能,利用这个特性可以在应用程序处于无响应甚至崩溃状态时,保存当前正在处理的数据,并将应用程序以及之前的数据恢复。本篇我们将利用Windows API Code Pack 来实现这一功能。      首先,我们来创建一个简单的WPF程序。在应用程序加载时需要注册(Register)ARR,当应用程序关闭时也需要将ARR注销。 <Window x:Class="AppRestartRecovery.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

CQRS体系结构模式实践案例:Tiny Library:领域仓储与事件存储

领域仓储(Domain Repository)与事件存储(Event Store)是CQRS体系结构应用系统中C部分(Command部分)的重要组件。虽然都是存储机制,但两者有着本质的区别:领域仓储是属于领域层的,而事件仓储则是属于基础结构层的。领域模型产生事件,领域仓储负责保存、发布事件,并通过事件序列重塑领域模型。由于领域仓储的存在,使得“内存领域模型(In-memory Domain)”成为可能。 在上文中我已经对对象的状态做了一些介绍,通过这些介绍我们能够了解到,在应用系统中,是领域事件导致了对象状态的变化,于是,我们只需要把这些领域事件按顺序记录下来,我们就有能力将领域模型还原到任何一个时间点上。就以Tiny Library中的Reader聚合为例,当Reader刚刚被创建的时候,它的Name状态是空的,客户程序可以通过Reader实体的ChangeNam

Windows 7 应用程序崩溃恢复

     从Vista 到Windows 7 这两款操作系统都带有应用程序恢复和重启(ARR)功能,利用这个特性可以在应用程序处于无响应甚至崩溃状态时,保存当前正在处理的数据,并将应用程序以及之前的数据恢复。本篇我们将利用Windows API Code Pack 来实现这一功能。      首先,我们来创建一个简单的WPF程序。在应用程序加载时需要注册(Register)ARR,当应用程序关闭时也需要将ARR注销。 <Window x:Class="AppRestartRecovery.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

在 Linux 操作系统中运行 ASP.NET 4 (下)

“在 Linux 操作系统中运行 ASP.NET 4 (中)”中已经配置好了 openSUSE 11.3 操作系统。 现在,我们进入“GNOME 终端”,使用 ifconfig 命令验证一下本虚拟的 IP 地址就是一开始我们在宽带路由器中为它分配的静态地址。 ben@linux-nyhn:~> /sbin/ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:51:5B:0B inet addr:192.168.1.251 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe51:5b0b/64 Scope:Link UP BROADCAST RUNNING MULTICAST

CRM 2011 RC中的新特性(2)——销售自动化方面

    在CRM2011 RC版本中,销售自动化方面新增的特性主要商机产品部分的对目录外产品的处理。     在以往的版本中,不能够在商机阶段将目录外产品作为商机产品的一个组成部分进行管理,只有到报价单阶段,才有了目录外产品的概念。在CRM2011中,对这一部分进行了修改,即,可以在添加商机产品时指定是目录内产品还是目录外产品。     下图是添加商机产品的页面样例     如红色区域标识的样子,在新建商机产品时,可以对产品类别进行选择:是目录内产品还是目录外产品。如果设定为目录内产品,那么和以前版本的crm中添加商机产品没有区别,选择现有产品,设定单位、数量等等信息。如下图所示。     如果设定为目录外产品,那么就需要在&ldqu

敏捷个人:内容框架之执行力

    执行力是敏捷个人需要学习的一个内容,本篇主要介绍执行力相关的内容,大家在读后可以采用介绍的一些指南开始行动。 执行力的三个层面 按照命令和规则做事的过程,简单讲就是能够听话照做 按照预定的计划行为的过程,简单讲就是做事章法 将想法变成现实的过程,简单讲就是规划实现   对第一个层面来说,要做的事情是片段的、非连贯的,但对第二个层面来说是连续的、整体的。一个计划并不是一两个步骤做好就行,而要将整体的顺序都做好才能达成效果。有了第二个层面的执行,组织的运转就有了相对较高的效率,但仍然不够,这就需要第三个层次的执行:创新规划并落实执行。组织的进步在于创新、在于设计、在于策划、在于走出习惯的自我,而且不仅仅是要有想法,还要有实现想法的能力,这就是第三个层次的执行。这三个层次的执行是逐步支撑的,第一个层次是第二个层次的保障,第二个层次是第三个层