2012年8月28日
摘要: 最近公司安排我和另一个同事一起完成一个Socket通信服务器,多个Socket通信客户端,具体的是服务器在window系统下c#开发,客户端是在liunx系统下开发,实现交互通讯。Socket通信服务器启动时,Socket将侦听到的Socket连接传给接受Socket,然后由接受Socket完成接受、发送消息,当Socket存在异常时,断开连接。我负责服务器端功能,所以我这里简单说下我服务器的功能:1、服务器一直监听当前客户端是否有连接2、动态的保留当前有连接状态的客户端3、服务器端和客户端进行交互数据主函数 public void StartListenUp() { IPAddress m. 阅读全文
posted @ 2012-08-28 18:20 夜&枫 阅读(18191) 评论(2) 推荐(0)
摘要: Microsoft.Net Framework为应用程序访问Internet提供了分层的、可扩展的以及受管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类可以开发多种网络应用程序。.Net类采用的分层结构允许应用程序在不同的控制级别上访问网络,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了Internet的所有需要--从socket套接字到普通的请求/响应,更重要的是,这种分层是可以扩展的,能够适应Internet不断扩展的需要。 抛开ISO/OSI模型的7层构架,单从TCP/IP模型上的逻辑层面上看,.Net类可以视为包含3. 阅读全文
posted @ 2012-08-28 14:31 夜&枫 阅读(834) 评论(0) 推荐(1)
  2012年6月14日
摘要: 一、分页SQL语句方法1:适用于 SQL Server 2000/2005SELECTTOP 页大小 *FROM table1 WHERE id NOTIN ( SELECTTOP 页大小*(页数-1) id FROM table1 ORDERBY id ) ORDERBY id方法2:适用于 SQL Server 2000/2005 SELECTTOP 页大小 *FROM table1 WHERE id > ( SELECTISNULL(MAX(id),0) FROM ... 阅读全文
posted @ 2012-06-14 18:16 夜&枫 阅读(535) 评论(0) 推荐(1)
摘要: 建表注意事项:对于建表大家都不陌生,这里主要说明一下几点注意实现:1、大数据字段最好剥离出单独的表,以便影响性能2、使用varchar,代替char,这是因为varchar会动态分配长度,char指定为20,即时你存储字符“1”,它依然是20的长度3、给表建立主键,看到好多表没主键,这在查询和索引定义上将有一定的影响4、避免表字段运行为null,如果不知道添加什么值,建议设置默认值,特别int类型,比如默认值为0,在索引查询上,效率立显。5、建立索引,聚集索引则意味着数据的物理存储顺序,最好在唯一的,非空的字段上建立,其它索引也不是越多越好,索引在查询上优势显著,在频繁更新数据的字段上建立聚集 阅读全文
posted @ 2012-06-14 18:13 夜&枫 阅读(4203) 评论(0) 推荐(2)
  2012年5月29日
摘要: 这些天忙着其他事情好久没来博客园看了,新增一篇博客也算是对项目进度的鞭策吧。第一步打开文件新建一个项目为空白解决方案,选择保存位置;第二在解决方案名称上单击鼠标右键,在弹出的快捷菜单中选择"添加"→"新建项目",选择window应用窗体程序;第三同样的步骤,打开新建项目,选择类库分别建立实现数据访问层、业务逻辑访问层、模型层。第四三层结构的基本框架已经搭建成功,但是各层之间是独立的,只有添加依赖关系,才能让它们相互协作;添加表示层对业务逻辑层及模型层的依赖,业务逻辑层中添加对数据访问层和模型层的依赖,以及数据访问层对模型层的依赖。上图:到此三层结构及各层 阅读全文
posted @ 2012-05-29 11:59 夜&枫 阅读(728) 评论(2) 推荐(0)
  2012年5月24日
摘要: 一个大型系统里各个环节中最容易出性能和可用性问题的往往是数据库,因此分布式设计与开发的一个重要领域就是如何让数据层具有可扩展性,数据库的扩展分为Scale Up 和Scale Out,而Scale Up说白了是通过升级服务器配置来完成,因此不在分布式设计的考虑之内。Scale Out是通过增加机器的方式来提升处理能力,一般需要考虑以下两个问题:数据拆分数据库高可用架构数据拆分是最先会被想到的,原理很简单,当一个表的数据达到无法处理的时候,就需要把它拆成多个表,说起来简单,真正在项目里运用的时候有很多点是需要深入研究的,一般分为:切分策略与应用程序端的整合策略切分策略切分策略一般分为垂直切分、横 阅读全文
posted @ 2012-05-24 17:15 夜&枫 阅读(484) 评论(0) 推荐(1)
摘要: 分布式环境中大多数服务是允许部分失败,也允许数据不一致,但有些最基础的服务是需要高可靠性,高一致性的,这些服务是其他分布式服务运转的基础,比如naming service、分布式lock等,这些分布式的基础服务有以下要求:高可用性高一致性高性能对于这种有些挑战CAP原则的服务该如何设计,是一个挑战,也是一个不错的研究课题,Apache的ZooKeeper也许给了我们一个不错的答案。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它暴露了一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。关于ZooKeeper更多信息可以参见官方文档ZooKeepe 阅读全文
posted @ 2012-05-24 17:14 夜&枫 阅读(462) 评论(0) 推荐(1)
摘要: 分布式设计与开发中有些疑难问题必须借助一些算法才能解决,比如分布式环境一致性问题,感觉以下分布式算法是必须了解的(随着学习深入有待添加):Paxos算法一致性Hash算法Paxos算法1)问题描述分布式中有这么一个疑难问题,客户端向一个分布式集群的服务端发出一系列更新数据的消息,由于分布式集群中的各个服务端节点是互为同步数据的,所以运行完客户端这系列消息指令后各服务端节点的数据应该是一致的,但由于网络或其他原因,各个服务端节点接收到消息的序列可能不一致,最后导致各节点的数据不一致。举一个实例来说明这个问题,下面是客户端与服务端的结构图: J3.jpeg (40.97 KB)2010-8-31. 阅读全文
posted @ 2012-05-24 17:13 夜&枫 阅读(447) 评论(0) 推荐(1)
摘要: 在IDF05(Intel Developer Forum 2005)上,Intel首席执行官Craig Barrett就取消4GHz芯片计划一事,半开玩笑当众单膝下跪致歉,给广大软件开发者一个明显的信号,单纯依靠垂直提升硬件性能来提高系统性能的时代已结束,分布式开发的时代实际上早已悄悄地成为了时代的主流,吵得很热的云计算实际上只是包装在分布式之外的商业概念,很多开发者(包括我)都想加入研究云计算这个潮流,在google上通过“云计算”这个关键词来查询资料,查到的都是些概念性或商业性的宣传资料,其实真正需要深入的还是那个早以被人熟知的概念------分布式。分布式可繁也可以简,最简单的分布式就是 阅读全文
posted @ 2012-05-24 17:12 夜&枫 阅读(295) 评论(0) 推荐(2)
  2012年5月22日
摘要: 项目中要使用到初始化数据库,需要用程序调用记录下,2段代码一段是调用方法一段是sql.sql文件:private void SETUP() { DialogResult result; result = MessageBox.Show("安装新数据库将删除原有数据库,是否继续安装!", "警告", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { string sqlpath = "sql.sq... 阅读全文
posted @ 2012-05-22 18:15 夜&枫 阅读(2050) 评论(2) 推荐(1)
  2012年5月21日
摘要: 最近设计数据库表结构时候要用到日期时间格式转换,弄了半天纠结了半天,发现好多以前掌握的东西都忘记了看来不经常用是容易遗忘,再次转载下sql server日期时间格式转换字符串;在sql server数据库中,sql server日期时间格式转换字符串可以改变sql server日期和时间的格式,是每个SQL数据库用户都应该掌握的。日期时间转字符串:SelectCONVERT(varchar(100),GETDATE(),0):0516200610:57AM SelectCONVERT(varchar(100),GETDATE(),1):05/16/06 SelectCONVERT(varcha 阅读全文
posted @ 2012-05-21 17:53 夜&枫 阅读(439) 评论(0) 推荐(0)
  2012年5月18日
摘要: 公司开始走正规化路线,所以一切都要有流程图,要拟一个软件开发进度表,要严格按照进度执行,之前自己写的进度基本就只有实际工作内容,没细分到每个阶段 在网上搜索到一篇决定写的很不错,再根据实际需要修改,记录下图显示: 软件开发进度表阶段主要工作应完成的文档计划起始时间计划终止时间实际起始时间实际终止时间责任人系统需求调研用户需求及用户环境 论证项目可行性项目初步开发计划进度表 制定项目初步计划 开发计划进行评审 需求分析确定系统运行环境需求规格说明 建立系统逻辑模型项目开发计划 确定系统功能及性能要求用户手册概要 编写需求规格说明、用户手... 阅读全文
posted @ 2012-05-18 18:07 夜&枫 阅读(25252) 评论(2) 推荐(1)
摘要: 最近公司有一个新项目,是一个软件和硬件结合的项目,具体的就是一个cs软件通过485通信操作硬件的基站,基站上面挂着传感器和其他设备,当然我只负责软件也就是上位机部分。通过1个月多的时间,每天开会开会调研调研,基本确定了项目方案、需求分析以及概要设计等等,准备开始详细模块的设计,当然这些都是开端,跟今天我说的不带边。开始项目时候就给领导申请招人(做c#的),然后领导也很肯定招人,从半个前开始挂上招聘网站职位:软件工程师。具体职责是这样写的1、全日制大学本科计算机软件专业或相关专业毕业。2、熟悉面向对象的软件分析,设计和开发技术。3、熟悉.Net Framework 2.0,熟悉.NET多层开发. 阅读全文
posted @ 2012-05-18 17:22 夜&枫 阅读(4281) 评论(73) 推荐(2)
  2012年5月17日
摘要: 考虑到实际需求在设计表结构的时候数据库的逻辑设计、包括表与表之间的关系是优化关系型数据库性能的核心。一个好的逻辑数据库设计可以为优化数据库和应用程序打下良好的基础。所以讨论一下标准1。尽量使用编码表; 2。有唯一性质的记录表,建立主键索引; 3。将描述同一种对象的属性数据设计在同一种表中; 4。有详细明细说明的,要建立子表; 5。为提高查询速度,建立必要的索引; 6。为防止数据库表中存在不合理的数据,建立必要的约束和默认; 7。定长字符项使用CHAR,NCHAR类型;不定长字符项使用VARCHAR,NVARCHAR; 8。日期时间最好使用DATETIME类型,便于时间的比较和计算。 9。为了节 阅读全文
posted @ 2012-05-17 13:57 夜&枫 阅读(956) 评论(1) 推荐(0)
摘要: 直接附上源码:try { for (int i = 0; i < 10; i++) { Random rd = new Random(); //Random类默认的无参构造函数可以根据当前系统时钟为种子,进行一系列算法得出要求范围内的伪随机数. int sjs = rd.Next(50, 100); if (listBox1.Items.Contains(sjs)) //去掉重复 { i--; } else { listBox1.Items.Add(sjs); } listBox1.Items.Add(Guid.NewGuid().ToString()); // //引用System.G 阅读全文
posted @ 2012-05-17 12:50 夜&枫 阅读(11446) 评论(0) 推荐(0)