代码改变世界

随笔分类 -  C,C++,C#编程技术类

以C#编写的Socket服务器的Android手机聊天室Demo

2012-01-11 21:08 by sensensen, 1992 阅读, 收藏, 编辑
摘要: 以C#编写的Socket服务器的Android手机聊天室Demo 内容摘要 1.程序架构 2.通信协议 3.服务器源代码 4.客户端源代码 5.运行效果 一、程序架构 在开发一个聊天室程序时,我们可以使用Socket、Remoting、WCF这些具有双向通信的协议或框架。而现在,我正要实现一个C#语言作为服务器端、Android作为客户端的聊天室。由于服务器端和客户端不是同一语言(C#和java),所有我选择了Socket作为通信协议。 图1.1所示,我们可以看出:android手机客户端A向服务器端发送消息,服务器端收到消息后,又把消息推送到android手机客户端B。图1.1 二、通信协议 阅读全文

ANSI,ASCII,Unicode的区别与联系

2011-11-28 17:18 by sensensen, 252 阅读, 收藏, 编辑
摘要: 最近看的程序中涉及到了ASCII和Unicode编码的问题,特找来发展的前因后果,来理解清楚:很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为"计算机"。开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)种不同的状态。他 们把其中的编号从0开始的32种状态分别规定了特殊的用途,一但终端、打印机遇上约 阅读全文

从快速排序说起

2011-05-10 22:47 by sensensen, 274 阅读, 收藏, 编辑
摘要: 排序算法是各种笔试,面试最常考到的一类题目,提到排序,一定会要求提供一种高效的方法,所以就不得不说一下快速排序了。快嘛!写出快速排序一定要先理解什么是枢纽元(pivot),枢纽元就是每次执行快排需要参照的那个元素。最常见的选择pivot的方法是选择第一个元素。此外还有最后一个元素,随机选择,中值法等等。比如 20,34,4,53,43,42,6,67,193 选择20为pivot经过一趟快速排序后会达到: 6,4,20,53,43,42,34,67,193 过程可参见动画http://www.jcc.jx.cn/xinwen3/news/kj/flash/2004/0426/1306.htm. 阅读全文

main,tmain,winmain()等函数——UNICODE

2011-05-06 10:40 by sensensen, 696 阅读, 收藏, 编辑
摘要: 最近使用Visual Studio 2008 发现 入口函数为_tmain,google一下,得解: 1.main是C程序的函数,_tmain是main为了支持unicode所使用的main的別名 2._tmain的定义在<tchar.h>可以找到,如#define _tmain main,所以要加#include <tchar.h>才能用。 _tmain()是个宏,如果是UNICODE则他是wmain()否则他是main() 3.因此_tmain compile后仍为main,所以都可以执行 main()是WINDOWS的控制台程序(32BIT)或DOS程序(16BI 阅读全文

VS2008中的各种工程及debug&release发布版本

2011-05-06 10:00 by sensensen, 647 阅读, 收藏, 编辑
摘要: 之前用了太长时间的VC6.0,在VC6.0下使用了MFC,控件等等,也自以为自己什么都知道,是懂的。可是面试了那么一两次之后才发现,其实很多基础原理、道理性的东西,自己都很缺失,难道就只做一个底层的coder,所以,决定了要把这些都弄清楚。GO LALA GO~~在vs中创建“win32 project”时,在创建向导的第二步可对“application type”进行配置。如下图所示:可设置为四种类型之一: windows application为windows应用程序,多用于设计图形界面,在新建项目对话框中选择“win32 project”时,应用类型则默认为“windows applic 阅读全文

Building MFC application with /MD[d] (CRT dll version)requires MFC shared dll version~~~~

2011-05-05 10:10 by sensensen, 2307 阅读, 收藏, 编辑
摘要: 昨天编译文件时出现了Building MFC application with /MD[d] (CRT dll version)requires MFC shared dll version~~~~的错误。在网上很容易找到了解决的方案,公布如下:对着你的项目点击右键,依次选择:属性、配置属性、常规,然后右边有个“项目默认值”,下面有个MFC的使用,选择“在共享 DLL 中使用 MFC”,就OK了~~~确实如此,可是知其然却不知其所以然,于是我把MFC的DLL相关内容学习了一下,小结如下: 使用VS2008,在项目属性中有一项MFC的使用,有三种设置: 1.使用标准Windows库 2.在共享D 阅读全文

EmguCV安装注意

2011-05-04 17:44 by sensensen, 849 阅读, 收藏, 编辑
摘要: 对于C#我是新手那就从最开始开始吧Vs2008+EmguCv1.3Vs2008自己弄吧。EmguCv的下载在:http://www.emgu.com/wiki/index.php/Main_Page选择1.3.0.0后面的SourceForge进入下载页下载一下几项Documentation-1.3.0.0.chm(文档)Emgu.CV.Linux.Binary-1.3.0.0.tar.gz(windsows用户就不用下这个啦)Emgu.CV.SourceAndExamples-1.3.0.0.zip(例子程序和源码库,opencv的dll和一些中间库,可供修改源码编译等)Emgu.CV.Wi 阅读全文

CHM文件打不开的解决办法

2011-05-04 17:10 by sensensen, 463 阅读, 收藏, 编辑
摘要: CHM是英语“Compiled Help Manual”的简写,即“已编译的帮助文件”。CHM是微软新一代的帮助文件格式,利用HTML作源文,把帮助内容以类似数据库的形式编译储存。 一般情况下,系统是默认(通过window目录下的hh.exe)可以打开这个文件的。有时候安装软件导致冲突之后,chm的关联打开方式可能就关联不到原来的hh.exe啦.解决方法如下: 首先要确定 windows目录下的hh.exe文件没有删除掉,然后在命令行下输入下面两个命令:REGSVR32 HHCTRL.OCX 和 REGSVR32 ITSS.DLL 就可以了,然后用打开方式把这个chm的文件关联到hh.exe就 阅读全文

开始用Emgu CV啦

2011-05-04 16:56 by sensensen, 704 阅读, 收藏, 编辑
摘要: Emgu CV is a cross platform .Net wrapper to the Intel OpenCV image processing library. Allowing OpenCV functions to be called from .NET compatible languages such as C#, VB, VC++, IronPython etc. The wrapper can be compiled in Mono and run on Linux / Mac OS X.A Comparison of OpenCV WrappersNameEmgu C 阅读全文