<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>青青部落</title><link>http://blog.csdn.net/JigLoveSmile/</link><description>一个编程学习天地，欢迎各位编程爱好者与我一起领略编程的乐趣，共享其中的乐趣</description><dc:language>zh-CN</dc:language><lastUpdateTime>Tue, 12 May 2009 17:48:00 GMT</lastUpdateTime><ttl>60</ttl><item><dc:creator>Jig</dc:creator><title>TCP通信处理浅谈</title><link>http://blog.csdn.net/JigLoveSmile/archive/2009/05/12/4171752.aspx</link><pubDate>Tue, 12 May 2009 17:04:00 GMT</pubDate><guid>http://blog.csdn.net/JigLoveSmile/archive/2009/05/12/4171752.aspx</guid><wfw:comment>http://blog.csdn.net/JigLoveSmile/comments/4171752.aspx</wfw:comment><comments>http://blog.csdn.net/JigLoveSmile/archive/2009/05/12/4171752.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/JigLoveSmile/comments/commentRss/4171752.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=4171752</trackback:ping><description>前段时间实现了一个小型的C/S架构的多人在线即时通信工具，JIGQQ。其中对使用TCP通信有点心得。

记得在我大学时代，就用VB做过TCP的通信。当然那时候是很初级的，发送的数据量也很小的应用。当时就觉得，有时候发送的数据接收端不能接收到，有时候呢觉得一次性没有接受完毕，总会丢失一些内容。这和我从书本学到的TCP/IP可靠通信协议的知识完全不匹配，这让我疑惑了很久。直到后来接触的东西越来越多，眼界也逐渐开拓才慢慢意识到问题出在哪。
&lt;img src ="http://blog.csdn.net/JigLoveSmile/aggbug/4171752.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jig</dc:creator><title>JIGQQ-即时多人在线的绿色通信工具</title><link>http://blog.csdn.net/JigLoveSmile/archive/2009/05/05/4150820.aspx</link><pubDate>Tue, 05 May 2009 11:03:00 GMT</pubDate><guid>http://blog.csdn.net/JigLoveSmile/archive/2009/05/05/4150820.aspx</guid><wfw:comment>http://blog.csdn.net/JigLoveSmile/comments/4150820.aspx</wfw:comment><comments>http://blog.csdn.net/JigLoveSmile/archive/2009/05/05/4150820.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/JigLoveSmile/comments/commentRss/4150820.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=4150820</trackback:ping><description>    JIGQQ是闲暇之余制作的一款小巧的即时多人在线的绿色通信工具。其由“服务器程序”和“客户端程序组成”，实现原理和真实腾讯QQ一样，通过“服务器程序”转发方式实现多人在线聊天。    目前实现功能只有文字聊天功能，图片和语音视频等暂没有完成。其可应用于个人局域网，和互联网。特别是大公司又不能连公网的朋友更可利用此工具和同事交流学习，呵呵~~( ^_^ )&lt;img src ="http://blog.csdn.net/JigLoveSmile/aggbug/4150820.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jig</dc:creator><title>二 熟悉语法，分析特点</title><link>http://blog.csdn.net/JigLoveSmile/archive/2009/03/31/4039696.aspx</link><pubDate>Tue, 31 Mar 2009 22:08:00 GMT</pubDate><guid>http://blog.csdn.net/JigLoveSmile/archive/2009/03/31/4039696.aspx</guid><wfw:comment>http://blog.csdn.net/JigLoveSmile/comments/4039696.aspx</wfw:comment><comments>http://blog.csdn.net/JigLoveSmile/archive/2009/03/31/4039696.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/JigLoveSmile/comments/commentRss/4039696.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=4039696</trackback:ping><description>上一篇我们了解了目标汇编，并创建了运行环境——TMY虚拟机。接下来，我们看看要将什么样的小语言翻译成目标汇编。
&lt;img src ="http://blog.csdn.net/JigLoveSmile/aggbug/4039696.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jig</dc:creator><title>小语言编译器</title><link>http://blog.csdn.net/JigLoveSmile/archive/2009/03/15/3992128.aspx</link><pubDate>Sun, 15 Mar 2009 15:13:00 GMT</pubDate><guid>http://blog.csdn.net/JigLoveSmile/archive/2009/03/15/3992128.aspx</guid><wfw:comment>http://blog.csdn.net/JigLoveSmile/comments/3992128.aspx</wfw:comment><comments>http://blog.csdn.net/JigLoveSmile/archive/2009/03/15/3992128.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/JigLoveSmile/comments/commentRss/3992128.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3992128</trackback:ping><description>哈哈，真没想到自己现在真能写编译器拉。我是完成了《编译原理及实践》中的实验，但很多具体细节的实现方法和书中所提是大相径庭的。可以说保持了主流程 扫描-语法分析-生存语法树-翻译成目标代码 是一致的，各个环节的具体实现很多是野招式。
    朋友问我为什么？其实很简单，TMD，那本书的很多东西看不懂啊，那只能自己理解了一部分就动手尝试啦。
   所以我的词法+语法分析是一起完成的。并且是在扫描生成语法树的时候完成的。而且一旦遇到错误将退出，并不会像我们常用的编译器一样，可以在扫描后再进行词法语法分析。这当然是当时没理解透，自己按自己的想法做的结果。不过好歹也算给我完成啦。不说那么多。发出来给大伙玩玩先。
&lt;img src ="http://blog.csdn.net/JigLoveSmile/aggbug/3992128.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jig</dc:creator><title>一 明确目标，搭建环境</title><link>http://blog.csdn.net/JigLoveSmile/archive/2009/03/15/3992117.aspx</link><pubDate>Sun, 15 Mar 2009 15:08:00 GMT</pubDate><guid>http://blog.csdn.net/JigLoveSmile/archive/2009/03/15/3992117.aspx</guid><wfw:comment>http://blog.csdn.net/JigLoveSmile/comments/3992117.aspx</wfw:comment><comments>http://blog.csdn.net/JigLoveSmile/archive/2009/03/15/3992117.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/JigLoveSmile/comments/commentRss/3992117.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3992117</trackback:ping><description>我们即将实践编写一个编译器。在这之前我们先明确我们的目标，并做必要的准备。我们将实现将一种小语言翻译成汇编并在我们特定的虚拟机上运行。为了完成这个目标我们需要循序渐近的完成若干个小任务。&lt;img src ="http://blog.csdn.net/JigLoveSmile/aggbug/3992117.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jig</dc:creator><title>Space C 2.0.4</title><link>http://blog.csdn.net/JigLoveSmile/archive/2009/03/13/3987467.aspx</link><pubDate>Fri, 13 Mar 2009 14:19:00 GMT</pubDate><guid>http://blog.csdn.net/JigLoveSmile/archive/2009/03/13/3987467.aspx</guid><wfw:comment>http://blog.csdn.net/JigLoveSmile/comments/3987467.aspx</wfw:comment><comments>http://blog.csdn.net/JigLoveSmile/archive/2009/03/13/3987467.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/JigLoveSmile/comments/commentRss/3987467.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3987467</trackback:ping><description>Space C 2.0.4 详细介绍&lt;img src ="http://blog.csdn.net/JigLoveSmile/aggbug/3987467.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jig</dc:creator><title>如何编写自己的图形开发包 - 第四章 艺术！这就是艺术！ — 显示位图-4.2 高彩位图的显示</title><link>http://blog.csdn.net/JigLoveSmile/archive/2008/07/07/2621983.aspx</link><pubDate>Mon, 07 Jul 2008 16:10:00 GMT</pubDate><guid>http://blog.csdn.net/JigLoveSmile/archive/2008/07/07/2621983.aspx</guid><wfw:comment>http://blog.csdn.net/JigLoveSmile/comments/2621983.aspx</wfw:comment><comments>http://blog.csdn.net/JigLoveSmile/archive/2008/07/07/2621983.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/JigLoveSmile/comments/commentRss/2621983.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2621983</trackback:ping><description>很绚吧，其实有更绚的图片，只是为了和24B比较，所以找了这张，不过此图比起那256色的的确绚丽了很多。
&lt;img src ="http://blog.csdn.net/JigLoveSmile/aggbug/2621983.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jig</dc:creator><title>如何编写自己的图形开发包 - 第四章 艺术！这就是艺术！—显示位图 - 4.1 显示一张256色的位图</title><link>http://blog.csdn.net/JigLoveSmile/archive/2008/07/02/2603902.aspx</link><pubDate>Wed, 02 Jul 2008 09:12:00 GMT</pubDate><guid>http://blog.csdn.net/JigLoveSmile/archive/2008/07/02/2603902.aspx</guid><wfw:comment>http://blog.csdn.net/JigLoveSmile/comments/2603902.aspx</wfw:comment><comments>http://blog.csdn.net/JigLoveSmile/archive/2008/07/02/2603902.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/JigLoveSmile/comments/commentRss/2603902.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2603902</trackback:ping><description>艺术？没错，我们下面要当当艺术家，（当然，不是行为艺术哦！）显示一张位图。为什么要显示位图？因为，你真以为就用一个画点函数就可以自己一个点一个点的画出绚丽的图案？那是扯淡的。比较绚的图当然要由我们美工哥哥姐姐们先设计好，我们通过程序来显示。只有这样比较复杂的游戏才能得以完成。&lt;img src ="http://blog.csdn.net/JigLoveSmile/aggbug/2603902.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jig</dc:creator><title>如何编写自己的图形开发包-第三章 泥瓦匠，很开心—简单的绘图函数</title><link>http://blog.csdn.net/JigLoveSmile/archive/2008/06/27/2592588.aspx</link><pubDate>Fri, 27 Jun 2008 17:26:00 GMT</pubDate><guid>http://blog.csdn.net/JigLoveSmile/archive/2008/06/27/2592588.aspx</guid><wfw:comment>http://blog.csdn.net/JigLoveSmile/comments/2592588.aspx</wfw:comment><comments>http://blog.csdn.net/JigLoveSmile/archive/2008/06/27/2592588.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/JigLoveSmile/comments/commentRss/2592588.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2592588</trackback:ping><description>泥瓦匠？不是用砖头砌房子的吗？也俗称民工。（实质上程序员和民工有什么区别嘛，郁闷！）不错，有了前面的努力我们终于有了自己的画点函数，就像泥瓦匠有了水泥砖头。我们也要来做做砌房子的工作，用我们的画点函数构建一套简单的绘图函数。&lt;img src ="http://blog.csdn.net/JigLoveSmile/aggbug/2592588.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jig</dc:creator><title>如何编写自己的图形开发包-第二章 给你一个画点函数，你就能描绘整个世界!-2.2 完善我们的画点函数</title><link>http://blog.csdn.net/JigLoveSmile/archive/2008/06/27/2592434.aspx</link><pubDate>Fri, 27 Jun 2008 16:50:00 GMT</pubDate><guid>http://blog.csdn.net/JigLoveSmile/archive/2008/06/27/2592434.aspx</guid><wfw:comment>http://blog.csdn.net/JigLoveSmile/comments/2592434.aspx</wfw:comment><comments>http://blog.csdn.net/JigLoveSmile/archive/2008/06/27/2592434.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/JigLoveSmile/comments/commentRss/2592434.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2592434</trackback:ping><description>这下惨了吧，出错了。按我们程序的代码，程序应该打印一条256个像素的斜线，也就是说上图中右边两段按道理应该接在最左边线段之下成一条直线的。       原来我们的机器在显示构造上是分页的。&lt;img src ="http://blog.csdn.net/JigLoveSmile/aggbug/2592434.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jig</dc:creator><title>如何编写自己的图形开发包-第二章 给你一个画点函数，你就能描绘整个世界! - 2.1 构造基本的画点函数</title><link>http://blog.csdn.net/JigLoveSmile/archive/2008/06/26/2590137.aspx</link><pubDate>Thu, 26 Jun 2008 20:50:00 GMT</pubDate><guid>http://blog.csdn.net/JigLoveSmile/archive/2008/06/26/2590137.aspx</guid><wfw:comment>http://blog.csdn.net/JigLoveSmile/comments/2590137.aspx</wfw:comment><comments>http://blog.csdn.net/JigLoveSmile/archive/2008/06/26/2590137.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/JigLoveSmile/comments/commentRss/2590137.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2590137</trackback:ping><description>我们现在画点最通用的方法就是直接往显存里写数据。大家体会这个‘写’字，说白了就是给某个显存位置输入一个数值，那么显示器上就会有个对应的效果出来。要问具体硬件怎么实现的？呵呵，对不起我也不知道，那是硬件工程师的事情。虽然我提倡刨根问底但也要讲用在具体问题上。就本文介绍的内容，我想目前讨论的就够底啦，在底就吃不消啦。&lt;img src ="http://blog.csdn.net/JigLoveSmile/aggbug/2590137.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jig</dc:creator><title>如何编写自己的图形开发包-第一章 实现图形初始化</title><link>http://blog.csdn.net/JigLoveSmile/archive/2008/06/26/2589686.aspx</link><pubDate>Thu, 26 Jun 2008 17:50:00 GMT</pubDate><guid>http://blog.csdn.net/JigLoveSmile/archive/2008/06/26/2589686.aspx</guid><wfw:comment>http://blog.csdn.net/JigLoveSmile/comments/2589686.aspx</wfw:comment><comments>http://blog.csdn.net/JigLoveSmile/archive/2008/06/26/2589686.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/JigLoveSmile/comments/commentRss/2589686.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2589686</trackback:ping><description>图形模式我们只要记住两个概念，分辨率+色深。    分辨率：这个我想不用我多加说明吧，比如我们需要一个320X200大小的画面。那么我们就需要编写一定代码去把我们的机器设置成这样的模式。    色深：也许有的朋友很清楚啦，可这个也是让很多初学者揣摩很久的概念。他的意思就是，我们的机器能显示多少种颜色，这个也是需要我们去设置的。&lt;img src ="http://blog.csdn.net/JigLoveSmile/aggbug/2589686.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jig</dc:creator><title>如何编写自己的图形开发包-前言</title><link>http://blog.csdn.net/JigLoveSmile/archive/2008/06/26/2589673.aspx</link><pubDate>Thu, 26 Jun 2008 17:44:00 GMT</pubDate><guid>http://blog.csdn.net/JigLoveSmile/archive/2008/06/26/2589673.aspx</guid><wfw:comment>http://blog.csdn.net/JigLoveSmile/comments/2589673.aspx</wfw:comment><comments>http://blog.csdn.net/JigLoveSmile/archive/2008/06/26/2589673.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/JigLoveSmile/comments/commentRss/2589673.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2589673</trackback:ping><description>写这篇文章，除了将图形编程最让人激动的其中一部分 —— 自己写底层，展现给大家外，也是自己做个总结。&lt;img src ="http://blog.csdn.net/JigLoveSmile/aggbug/2589673.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jig</dc:creator><title>内存管理 - 动态开辟内存</title><link>http://blog.csdn.net/JigLoveSmile/archive/2007/02/05/1502793.aspx</link><pubDate>Mon, 05 Feb 2007 19:23:00 GMT</pubDate><guid>http://blog.csdn.net/JigLoveSmile/archive/2007/02/05/1502793.aspx</guid><wfw:comment>http://blog.csdn.net/JigLoveSmile/comments/1502793.aspx</wfw:comment><comments>http://blog.csdn.net/JigLoveSmile/archive/2007/02/05/1502793.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/JigLoveSmile/comments/commentRss/1502793.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1502793</trackback:ping><description>以上阐述的思路，其实很简单。也许大家在看到这时就觉得这个很小儿科了。我也承认这的确很小儿科。说到底，其实就是先开辟好内存然后再来使用，但作为一个思路我希望对您有一定启发和帮助，同时也希望和大家共同交流和探讨。当然，任何事物和方法都有两面性，这个内存管理也不列外。
    缺点：由于要开辟一个列表来纪录内存的使用状态，所以增大了内存的开销，如上所示，40个字节的内存就需要5个字节的管理列表。
    优点：这个方法简单方便，在单片机这样的平台上你想像在PC机上那样花大力气去做内存的影射吗？而且那样做内存的额外开销也不一定比此方法的少。并且是按字节大小以顺序方式开辟内存，不存在什么所谓的内存碎片。
    当然，大家在使用着套方法的时候一定主要将Malloc()和Free()函数配套使用，并且要保证里面的Size参数一样。当然你也可以进一步改进此方法，让他使用的更合理更安全。 &lt;img src ="http://blog.csdn.net/JigLoveSmile/aggbug/1502793.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jig</dc:creator><title>“虚拟内存” -- 开辟“无限数组”</title><link>http://blog.csdn.net/JigLoveSmile/archive/2006/08/06/1028125.aspx</link><pubDate>Sun, 06 Aug 2006 14:57:00 GMT</pubDate><guid>http://blog.csdn.net/JigLoveSmile/archive/2006/08/06/1028125.aspx</guid><wfw:comment>http://blog.csdn.net/JigLoveSmile/comments/1028125.aspx</wfw:comment><comments>http://blog.csdn.net/JigLoveSmile/archive/2006/08/06/1028125.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/JigLoveSmile/comments/commentRss/1028125.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1028125</trackback:ping><description>利用文件实现“虚拟内存”&lt;img src ="http://blog.csdn.net/JigLoveSmile/aggbug/1028125.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>