• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
keerting
博客园    首页    新随笔    联系   管理    订阅  订阅
2012年6月11日
虚函数和多态
摘要: 父类中定义的虚函数子类对象调用该函数的同名函数时,有三种:(1)子类不定义同名函数,那么子类对象在调用此函数时,是调用了父类的该函数,即进入父类该函数的入口地址(2)子类对象重写此函数(new或者override),那么子类对象在调用此函数时,是调用了子类自己的函数,至于父类该函数的入口地址是否还存在,之后讨论(3)子类定义一个同名函数,那么子类对象在调用此函数时,是调用了子类自己的函数,隐藏父类该函数的入口地址(仍存在),这种情况跟new重写是一样的,换句话说new加和不加是没有影响的那么对于第(2)种,new和override是有区别的,new是在父类函数的入口地址之外再创建一个同名函数入 阅读全文
posted @ 2012-06-11 19:45 keerting 阅读(242) 评论(0) 推荐(0)
关于变量和对象的区别
摘要: 这里有两个概念:变量和对象 变量在线程堆栈上分配,并且随时消亡,对象在托管堆上分配,受垃圾收集器管理。所谓引用,是指变量引用对象,追究起来,其实是个指针。变量消失不等于对象消失,因为可能有多个变量引用同一对象。当一个变量引用一个对象时,这个变量成为这个对象的根。当对象没有根时,它就成为垃圾收集器销毁的目标。而c++中变量分为局部、全局、静态,c#中只有成员(局部)和静态。如局部变量是在函数执行完时消失,那么这个局部变量引用的对象也可以被标识为“可回收”。 阅读全文
posted @ 2012-06-11 15:06 keerting 阅读(550) 评论(0) 推荐(0)
2012年3月18日
在vs2008中使用SQLite
摘要: Sqlite在嵌入式产品中使用的轻型数据库,只需几百k的内存,支持Windows/Linux/Unix等等主流的操作系统,支持c#。php。java,tcl,处理速度快。支持的SQL语句不会逊色于其他开源数据库。如果把Sqlite看做事SQLServer,那么 ADO.NET2.0 Provider for Sqlite就相当于System.Data.SqlClient,而SqliteAdmin则是SQLServer Management Studio Express.在网上下载SQLite-1.0.66.0-setup后,进行安装,在安装文件bin目录下找到System.Data.SQLit 阅读全文
posted @ 2012-03-18 20:01 keerting 阅读(1208) 评论(0) 推荐(0)
2012年2月8日
基于tcp开发—多线程
摘要: 多线程问题:多线程过程的参数与返回值在基于控件开发多线程应用过程中要分清各自的线程,ui线程控制响应用户操作和界面变化,如果用ui线程执行其他操作,那么界面接回卡住。那么其他操作就应该另启线程进行运行,然而线程之间经常需要参数传递,比如把其他操作的参数显示到界面上,这时就要搞清楚什么操作由哪条线程控制。在多线程应用程序中提供和返回值是很复杂的,因为必须将对某个过程的引用传递给线程类的构造函数,该过程不带参数也不返回值。为多线程过程提供参数 :为多线程方法调用提供参数的最好办法是将目标方法包裹在类中,并为该类定义字段,这些字段将被用作新线程的参数。这种方法的优点是,任何时候想要启动新线程,都可以 阅读全文
posted @ 2012-02-08 16:13 keerting 阅读(487) 评论(0) 推荐(0)
2012年2月6日
基于tcp开发—异步机制
摘要: 前面关于socket的编程,全部是基于同步机制开发的服务器和客户端,线程会进入阻塞或者挂起状态,降低线程利用率,同时程序影响效率。因此,向tcp程序引入异步回调:在异步套接字完成网络操作后,线程没有被阻塞或者挂起,接着通过调用回调函数处理后续网络操作。而主线程继续执行,以实现并行执行的结果。为什么要引入异步机制?看到过一个解释。当我们打开一个程序时,鼠标不停地转但是就是不见界面跳转,这是其他耗时操作阻碍了ui线程,造成ui线程不能响应用户操作。如果引用异步机制,ui线程在发起耗时操作之后马上回来响应用户操作,把能响应的都给用户,最后等耗时操作结束,通过回调来处理耗时操作的结果。这就是异步机制能 阅读全文
posted @ 2012-02-06 21:59 keerting 阅读(289) 评论(1) 推荐(0)
2012年2月5日
关于socket编程(续2)——解决tcp无保护消息边界问题
摘要: tcp和udp都是以字节流形式传输数据,所以多个数据包之间是无保护消息边界的。因此必须把要传输的数据的大小在数据传输之前就发给客户端,以使客户端能开辟足够大的数据缓冲区。于是必须重写数据发送方法send和数据接收方法recieve。另外在传输其他类型的数据(如数据长度)时,都要经过格式转换。 阅读全文
posted @ 2012-02-05 21:18 keerting 阅读(352) 评论(0) 推荐(0)
2012年2月4日
关于socket编程(续1)——多线程解决同时响应多客户机请求的问题
摘要: 继续昨天的例子,这里将单线程提升到多线程。服务器端的业务逻辑:创建套接字server,与本地终结点绑定,监听3000端口;accept把客户端套接字传递给套接字client;定义一个方法,用echo技术处理client(注意这个方法能对客户端套接字响应,当客户端断开连接时也将client断开);申请一个线程,把该方法委托给线程,并启动线程。客户端逻辑:创建套接字client,与本地终结点绑定,监听3000端口;定义用户输入两种情况:exit表示断开与服务器套接字连接;其他信息表示与服务器通信,显示服务器的响应信息。这样在服务器端,一条线A程专门用来监听客户端连接申请,把收到的客户端套接字传递给 阅读全文
posted @ 2012-02-04 19:39 keerting 阅读(426) 评论(0) 推荐(0)
2012年2月3日
关于socket编程——一台机子上客户端与服务器通信实现
摘要: 客户端代码socketclient.cs如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net;using System.Net.Sockets;namespace socketclient{ class socketclient {static void Main(string[] args) { Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, P 阅读全文
posted @ 2012-02-03 15:22 keerting 阅读(1638) 评论(1) 推荐(0)
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3