摘要: 两年前的一个设计,找资料时扒了出来,打开看了一下源码,那个时候的设计真是无框架无模式的设计,但对像QQ这样的聊天软件无疑是一个了解和值得参考的实例,所以大牛请绕过,在此跟大家分享一下,希望对正在学习Socket的童鞋们有点帮助,欢迎大家来拍砖,上图:简介:1.软件采用C/S模式,服务器基于.NET控制台应用程序,客户端基于.NET WPF,数据库采用SQL Server2.在通信上采用TCP协议进行信息传递,以服务器转发方式通信,用户注册及密码管理基于B/S(ASP.NET)3.主要完成了用户注册、用户密码修改、添加好友、删除好友;文字信息转发(支持字体)、抖动窗体、发送图片(支持GIF,但有 阅读全文
posted @ 2012-06-01 15:53 Daniel.Zhao 阅读(17892) 评论(50) 推荐(47) 编辑
摘要: 在项目当中有一组选择项,要求单选并且可以取消,但Winform提供的单选按钮一旦选择上就不能取消了,经过研究和测试,总算搞定了功能的要求,主要代码如下,就不一一说明了,代码里有注释,给有需要的朋友一个参考,Demo在下面。private bool checkedStatus = false; /// /// 当前按钮选择状态,true已选择 /// public bool CheckedStatus { get { return checkedStatus; ... 阅读全文
posted @ 2013-08-02 12:47 Daniel.Zhao 阅读(5390) 评论(7) 推荐(0) 编辑
摘要: 前段时间公司新写的自动升级服务端(Remoting)出现了内存不断飙升的情况,从最初的七八十兆一晚上竟然飙到了1G多,直接导致客户端连接服务端失败,这不科学,后来优化了各种可能造成占用内存的方法(数据库连接,I/O操作,引用类型释放),但效果不佳,这下可难为我们了,不知道问题的所在也就不知道该如何去修改。我们知道.NET是带有垃圾回收机制的,出现这种情况一般是由某些数据长期存活在内存中又不能被当成垃圾数据回收的原因造成的。后来就在各搜索引擎上进行了各种搜索,有说使用windebug分析dump,但需要大量时间琢磨,有人说是不是硬件问题,还有人说中毒了,最后找到了一款微软推出的CLRProfil 阅读全文
posted @ 2012-11-02 23:30 Daniel.Zhao 阅读(13673) 评论(37) 推荐(39) 编辑
摘要: 前言当使用.NET“安装项目”打包的安装文件,再次安装的时候会弹出如下提示,这个时候会让我们很郁闷,怎样才能自动卸载上一个安装的版本呢?方法很简单,只需简单的两个操作步骤即可解决。操作步骤主要由RemovePreviousVersions属性和ProductCode值来决定。MSDN上是这样说的“安装程序检查“UpgradeCode”和“ProductCode”属性,以确定是否应移除早期版本。新旧两种版本的 UpgradeCode 必须相同;ProductCode 必须不同。”RemovePreviousVersions 属性在“部署项目属性”当中,设置RemovePreviousVersio 阅读全文
posted @ 2012-10-26 15:14 Daniel.Zhao 阅读(4248) 评论(3) 推荐(0) 编辑
摘要: 什么是猜想输入 当我们在使用查询应用时,输入某个关键字后文本框下面就会自动弹出跟此关键字相附的词组供我们选择,为我们节省了输入的时间,这就是猜想输入,例如:百度,谷歌,等等,如下图: 如上图所示,使用WinForm的TextBox实现了这样的效果,主要借助于TextBox的AutoCompleteMode和AutoCompleteSource以及AutoCompleteCustomSource属性。详细参数 AutoCompleteMode 获取或设置控制自动完成如何作用于TextBox的选项。 属性值 Append 将最可能的候选字符串的其余部分追加到现有的字符,并... 阅读全文
posted @ 2011-12-07 11:38 Daniel.Zhao 阅读(11130) 评论(16) 推荐(16) 编辑
摘要: 引言自.NET Framework 2.0 版本开始新增了一个SendFile方法,此方法可以方便的发送指定路径的文件,今天给大家演示一个利用Socket.SendFile方法发送图片的例子,希望能给刚刚接触Socket编程的朋友一些帮助,效果图:SendFile详细参数Socket.SendFile 方法 (String, Byte[], Byte[], TransmitFileOptions)使用指定的TransmitFileOptions值,将文件fileName和数据缓冲区发送到连接的 Socket对象。注意是连接的Socket对象,所以只适用于TCP协议的Socket连接。参数fil 阅读全文
posted @ 2011-11-18 17:28 Daniel.Zhao 阅读(10624) 评论(11) 推荐(6) 编辑
摘要: 注:感谢Aleax博友提出的Bug(见#7楼),现已纠正,纠正的内容会在要点里说明,修改过的源码已附上,也谢谢各位博友提出的意见和方法,当然方法有很多种,这只是其中一种非常简单和直接的方法,给初学者一点参考,望大家多多提意。效果图一 准备工作 两张透明的png图片(尺寸73 x 81),一张用于鼠标进入控件时显示,一张用于鼠标单击控件时显示。 新建自定义控件,在构造函数中添加代码 public GlassButton() { SetStyle(ControlStyles.DoubleBuffer, true); ... 阅读全文
posted @ 2011-11-01 14:41 Daniel.Zhao 阅读(11255) 评论(50) 推荐(15) 编辑
摘要: Windows PhoneApplicationBar包含了ApplicationBarIconButton和ApplicationBarMenuItem,最多只能添加四个按钮,菜单通过ApplicationBar右边的省略号来展开,都继承自Microsoft.Phone.Shell命名空间,所以在引用时前面都有shell的标志,如: <phone:PhoneApplicationPage.ApplicationBar> <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True" 阅读全文
posted @ 2011-10-31 18:05 Daniel.Zhao 阅读(1677) 评论(0) 推荐(1) 编辑
摘要: 在WP开发当中我们常常会遇到图片无法显示,视频、音乐无法播放,可地址明明是正确的啊,究其原因呢,经过MSDN考证原来是Build Action的设置不当引起的。 在资源文件上点击右键,选择Properties即打开属性窗口,如下图: 在WP资源文件的Build Action中,我们经常会用到下面几种情况:None:此文件将被忽略不参与编译和输出Compile:文件将被编译为Microsoft 中间语言(IL),如文件扩展名为cs的文件Content:文件将会打包进xap文件当中,以独立文件使用Page:在WP当中,xaml页面文件都属于Page,除App.xaml文件外Resource:文件. 阅读全文
posted @ 2011-10-31 11:47 Daniel.Zhao 阅读(1307) 评论(0) 推荐(0) 编辑
摘要: 引言 最近大家都在关注着微软发布的全新手机操作系统—Windwos Phone 7,她与众不同的界面流畅的操作方式,大气时尚的布局深深的吸引着广大消费者,也深深的吸引着我们大多数的开发人员,许多博友都已着手写了许多关于Windows Phone的技术开发文档,那么我也不例外,由于我对移动设备软件的开发有着很重的偏爱,所以我也将我在开发当中所遇到的问题和经验发表出来与大家分享交流。 先前了解过一些Windows Mobile的知识,但由于近年来IPhone和Android对WM的冲击使WM失去了许多市场,开发人员也都放弃了WM,大家都调侃说“我们总不能一直守着WM的面孔一起慢慢变老”,呵呵,现如 阅读全文
posted @ 2011-10-28 16:49 Daniel.Zhao 阅读(2002) 评论(12) 推荐(3) 编辑