<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    如鵬網(wǎng) 大學(xué)生計算機學(xué)習(xí)社區(qū)

    CowNew開源團隊

    http://www.cownew.com 郵件請聯(lián)系 about521 at 163.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      363 隨筆 :: 2 文章 :: 808 評論 :: 0 Trackbacks

    #

    在使用數(shù)據(jù)選擇器的時候(ValueObjectDataPicker),如果只有一條數(shù)據(jù),顯示窗口的時候,提示document.formDataList.selectId[...]為空或不是對象。
    這是一個Bug,修改WebContent\Ctrl\ValueObjectDataPicker.jsp 的getSelectedData 方法開頭如下添加代碼:
    function getSelectedData()
    {
    if(document.formDataList.selectId.constructor != Array)
    {
        var ret = new Array();
        ret[0] = document.formDataList.selectId;
        return ret;
    }
    var selectIndex=-1;
    …………………………
    }
    posted @ 2008-11-13 23:05 CowNew開源團隊 閱讀(424) | 評論 (0)編輯 收藏

     

    shupi 

    Chinapub在線購買地址:http://www.china-pub.com/301651

    當(dāng)當(dāng)網(wǎng)在線購買地址:http://product.dangdang.com/product.aspx?product_id=20368319

    試讀電子版下載:
    下載地址1:http://www.tkk7.com/Files/huanzhugege/cxydSQLjd.zip
    下載地址2: http://www.namipan.com/d/2ec1eacc92d2678a38095bef1d19ed938f78831d6f791500
    第一本專門為程序員編寫的數(shù)據(jù)庫圖書

    《程序員的SQL金典》

    • 將子查詢、表連接、數(shù)據(jù)庫語法差異等用通俗易懂、詼諧幽默的語言講解出來
    • 配合大量真實案例,學(xué)了就能用,在短時間內(nèi)成為數(shù)據(jù)庫開發(fā)高手
    • 高度提取不同數(shù)據(jù)庫的共同點,仔細(xì)分析不同點,并給出解決方案,同時學(xué)會MSSQLServer、MYSQL、Oracle、DB2數(shù)據(jù)庫不再是夢
    • 國內(nèi)第一本講解開窗函數(shù)實際應(yīng)用的圖書

    輕舉技術(shù)之“綱”,張合用之“目”,鍛造SQL高可用性數(shù)據(jù)庫應(yīng)用指南從理論到實踐,凝聚SQL主流數(shù)據(jù)庫最前沿的技術(shù)要領(lǐng)。

    本書特色:主要介紹SQL的語法規(guī)則及在實際開發(fā)中的應(yīng)用,并且對SQL在MySQL、MS SQL Server、Oracle和DB2中的差異進行了分析;詳細(xì)講解數(shù)據(jù)庫對增、刪、改、查等SQL的支持并給出了相應(yīng)的SQL應(yīng)用案例;透徹分析函數(shù)、子查詢、表連接、不同DBMS中的SQL語法差異、SQL調(diào)優(yōu)、NULL值處理、事務(wù)、開窗函數(shù)等高級技術(shù);通過對實際案例開發(fā)過程的詳細(xì)分析,使讀者掌握SQL的綜合應(yīng)用技巧。

    內(nèi)容提要

    本書主要介紹SQL以及在實際開發(fā)中的應(yīng)用,并且對SQL在MYSQL、MSSQLServer、Oracle和DB2中的差異性進行了分析。本書分為三部分:第一部分為基礎(chǔ)篇,主要講解數(shù)據(jù)庫對增刪改查等SQL的支持,給出了這些SQL的應(yīng)用案例;第二部分為進階篇,講解了函數(shù)、子查詢、表聯(lián)接、不同DBMS中SQL語法差異、SQL調(diào)優(yōu)、NULL值處理、事務(wù)、開窗函數(shù)等高級技術(shù);第三部分為案例篇,講解了前兩部分的知識的綜合運用。此書適用于學(xué)習(xí)數(shù)據(jù)庫編程的讀者,對于有一定數(shù)據(jù)庫開發(fā)經(jīng)驗的讀者也有非常大的參考價值。

    前言

    市面上講解數(shù)現(xiàn)在據(jù)庫的書都花了很多篇幅講解數(shù)據(jù)庫的備份、授權(quán)、調(diào)優(yōu)、修復(fù)、監(jiān)控等內(nèi)容,這些內(nèi)容是數(shù)據(jù)庫管理員(DBA)應(yīng)該掌握的,而對于程序員來說更需要去掌握的則是SQL語句的使用。但是市面上專門講解SQL語句的書非常少,初學(xué)者學(xué)習(xí)數(shù)據(jù)庫開發(fā)過程中常常被那些寫給DBA的書弄的暈頭轉(zhuǎn)向,無法真正快速的掌握SQL技術(shù);而且這些書中講解的SQL也常常是針對特定數(shù)據(jù)庫系統(tǒng)的專有實現(xiàn),無法很容易的在其他數(shù)據(jù)庫系統(tǒng)中運行,讀者需要閱讀大量的書和查閱大量的文檔才能掌握不同數(shù)據(jù)庫系統(tǒng)的使用。

    本書是專門寫給程序員的,因此沒有講解備份、授權(quán)、調(diào)優(yōu)、修復(fù)、監(jiān)控等開發(fā)人員不關(guān)心的內(nèi)容,直接從SQL語句入手讓讀者快速的掌握數(shù)據(jù)庫開發(fā)的技能。“面向開發(fā)人員,講解對開發(fā)人員最有用的知識”是本書的編寫宗旨。

    MYSQL、MSSQLServer、Oracle和DB2等都是非常流行的數(shù)據(jù)庫管理系統(tǒng)(DBMS),雖然在大部分SQL語法上這些DBMS實現(xiàn)都是一致的,不過在實現(xiàn)細(xì)節(jié)以及高級語法方面這些DBMS的實現(xiàn)差異還是非常大的。如果編寫能夠兼容這些DBMS的SQL語句是開發(fā)人員經(jīng)常需要面對的問題。本書將幫助讀者從根本上解決這個問題。

    很多開發(fā)人員對于SQL語句的掌握只限于簡單的SELECT、UPDATE語句,對于稍微復(fù)雜的邏輯經(jīng)常需要編寫程序代碼來完成,這不僅無法發(fā)揮數(shù)據(jù)庫的優(yōu)勢,而且開發(fā)出的系統(tǒng)性能非常低,而如果能夠使用數(shù)據(jù)庫函數(shù)、子查詢、表聯(lián)接、開窗函數(shù)等高級的SQL特性則可以大大簡化系統(tǒng)開發(fā)的難度,并且提高系統(tǒng)的性能。本書將對這些高級特性進行詳細(xì)的講解。

    本書第1、2章介紹數(shù)據(jù)庫系統(tǒng)的基本知識以及基本操作;第3章介紹Insert、Delete和Update語句的基本應(yīng)用;第4章對Select語句進行全面的介紹,對模糊匹配、分組、限制數(shù)據(jù)條數(shù)、計算字段、組合查詢等高級內(nèi)容進行了重點的講解;第5章介紹常用的數(shù)據(jù)庫函數(shù)以及它們在主流DBMS中的實現(xiàn)差異;第6章介紹索引與約束等知識點;第7、8章分別介紹表連接、子查詢等高級查詢技術(shù);第9章對主流DBMS的語法差異進行分析,并且給出了解決方案;第10章介紹注入漏洞攻擊、SQL調(diào)優(yōu)、事務(wù)、自動增長字段、NULL值處理、開窗函數(shù)等高級話題;第11章以一個案例講解書中知識點在實際開發(fā)中的應(yīng)用。

    在此,我要感謝為這本書的誕生給于我?guī)椭乃腥恕J紫任乙兄xCowNew開源團隊的朋友們一直以來的無私奉獻;感謝KingChou在開發(fā)CowNewSQL過程中的卓越工作,沒有CowNewSQL也就不會有這本書的問世;還要感謝EasyJF的蔡世友,他一直以來對開源事業(yè)的奉獻是值得我學(xué)習(xí)的;最后我要感謝電子工業(yè)出版社的田小康經(jīng)理,他的高效工作使得本書能夠順利的完成和出版。

    如果您對我的書有任何意見和建議,您可以給我發(fā)送郵件:about521@163.com,本書相關(guān)的后續(xù)資料將會發(fā)布到CowNew開源團隊網(wǎng)站(http://www.cownew.com)中。

    第1章 數(shù)據(jù)庫入門 1

    1.1 數(shù)據(jù)庫概述 1

    1.1.1 數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng) 1

    1.1.2 數(shù)據(jù)庫能做什么 2

    1.1.3 主流數(shù)據(jù)庫管理系統(tǒng)介紹 2

    1.2 數(shù)據(jù)庫基礎(chǔ)概念 5

    1.2.1 Catalog 5

    1.2.2 表(Table) 6

    1.2.3 列(Column) 7

    1.2.4 數(shù)據(jù)類型(DataType) 8

    1.2.5 記錄(Record) 9

    1.2.6 主鍵(PrimaryKey) 9

    1.2.7 索引(Index) 10

    1.2.8 表關(guān)聯(lián) 12

    1.2.9 數(shù)據(jù)庫的語言——SQL 13

    1.2.10 DBA與程序員 14

    第2章 數(shù)據(jù)表的創(chuàng)建和管理 17

    2.1 數(shù)據(jù)類型 17

    2.1.1 整數(shù)類型 17

    2.1.2 數(shù)值類型 19

    2.1.3 字符相關(guān)類型 21

    2.1.4 日期時間類型 23

    2.1.5 二進制類型 24

    2.2 通過SQL語句管理數(shù)據(jù)表 25

    2.2.1 創(chuàng)建數(shù)據(jù)表 25

    2.2.2 定義非空約束 26

    2.2.3 定義默認(rèn)值 27

    2.2.4 定義主鍵 27

    2.2.5 定義外鍵 29

    2.2.6 修改已有數(shù)據(jù)表 30

    2.2.7 刪除數(shù)據(jù)表 31

    2.2.8 受限操作的變通解決方案 31

    第3章 數(shù)據(jù)的增、刪、改 33

    3.1 數(shù)據(jù)的插入 34

    3.1.1 簡單的INSERT語句 34

    3.1.2 簡化的INSERT語句 36

    3.1.3 非空約束對數(shù)據(jù)插入的影響 36

    3.1.4 主鍵對數(shù)據(jù)插入的影響 37

    3.1.5 外鍵對數(shù)據(jù)插入的影響 38

    3.2 數(shù)據(jù)的更新 38

    3.2.1 簡單的數(shù)據(jù)更新 39

    3.2.2 帶WHERE子句的UPDATE語句 40

    3.2.3 非空約束對數(shù)據(jù)更新的影響 41

    3.2.4 主鍵對數(shù)據(jù)更新的影響 42

    3.2.5 外鍵對數(shù)據(jù)更新的影響 42

    3.3 數(shù)據(jù)的刪除 43

    3.3.1 簡單的數(shù)據(jù)刪除 43

    3.3.2 帶WHERE子句的DELETE語句 44

    第4章 數(shù)據(jù)的檢索 47

    4.1 SELECT基本用法 48

    4.1.1 簡單的數(shù)據(jù)檢索 48

    4.1.2 檢索出需要的列 49

    4.1.3 列別名 51

    4.1.4 按條件過濾 52

    4.1.5 數(shù)據(jù)匯總 53

    4.1.6 排序 56

    4.2 高級數(shù)據(jù)過濾 59

    4.2.1 通配符過濾 59

    4.2.2 空值檢測 63

    4.2.3 反義運算符 64

    4.2.4 多值檢測 65

    4.2.5 范圍值檢測 66

    4.2.6 低效的“WHERE 1=1” 68

    4.3 數(shù)據(jù)分組 72

    4.3.1 數(shù)據(jù)分組入門 74

    4.3.2 數(shù)據(jù)分組與聚合函數(shù) 76

    4.3.3 HAVING語句 79

    4.4 限制結(jié)果集行數(shù) 81

    4.4.1 MySQL 81

    4.4.2 MS SQL Server 2000 82

    4.4.3 MS SQL Server 2005 83

    4.4.4 Oracle 84

    4.4.5 DB2 86

    4.4.6 數(shù)據(jù)庫分頁 88

    4.5 抑制數(shù)據(jù)重復(fù) 90

    4.6 計算字段 91

    4.6.1 常量字段 92

    4.6.2 字段間的計算 93

    4.6.3 數(shù)據(jù)處理函數(shù) 95

    4.6.4 字符串的拼接 97

    4.6.5 計算字段的其他用途 103

    4.7 不從實體表中取的數(shù)據(jù) 105

    4.8 聯(lián)合結(jié)果集 107

    4.8.1 簡單的結(jié)果集聯(lián)合 108

    4.8.2 聯(lián)合結(jié)果集的原則 110

    4.8.3 UNION ALL 112

    4.8.4 聯(lián)合結(jié)果集應(yīng)用舉例 114

    第5章 函數(shù) 119

    5.1 數(shù)學(xué)函數(shù) 122

    5.1.1 求絕對值 122

    5.1.2 求指數(shù) 122

    5.1.3 求平方根 123

    5.1.4 求隨機數(shù) 123

    5.1.5 舍入到最大整數(shù) 125

    5.1.6 舍入到最小整數(shù) 126

    5.1.7 四舍五入 127

    5.1.8 求正弦值 128

    5.1.9 求余弦值 129

    5.1.10 求反正弦值 129

    5.1.11 求反余弦值 130

    5.1.12 求正切值 130

    5.1.13 求反正切值 131

    5.1.14 求兩個變量的反正切 131

    5.1.15 求余切 132

    5.1.16 求圓周率π值 132

    5.1.17 弧度制轉(zhuǎn)換為角度制 133

    5.1.18 角度制轉(zhuǎn)換為弧度制 134

    5.1.19 求符號 134

    5.1.20 求整除余數(shù) 135

    5.1.21 求自然對數(shù) 136

    5.1.22 求以10為底的對數(shù) 136

    5.1.23 求冪 137

    5.2 字符串函數(shù) 137

    5.2.1 計算字符串長度 138

    5.2.2 字符串轉(zhuǎn)換為小寫 138

    5.2.3 字符串轉(zhuǎn)換為大寫 139

    5.2.4 截去字符串左側(cè)空格 139

    5.2.5 截去字符串右側(cè)空格 140

    5.2.6 截去字符串兩側(cè)的空格 141

    5.2.7 取子字符串 143

    5.2.8 計算子字符串的位置 144

    5.2.9 從左側(cè)開始取子字符串 145

    5.2.10 從右側(cè)開始取子字符串 146

    5.2.11 字符串替換 147

    5.2.12 得到字符的ASCII碼 148

    5.2.13 得到一個ASCII碼數(shù)字對應(yīng)的字符 149

    5.2.14 發(fā)音匹配度 151

    5.3 日期時間函數(shù) 153

    5.3.1 日期、時間、日期時間與時間戳 153

    5.3.2 主流數(shù)據(jù)庫系統(tǒng)中日期時間類型的表示方式 154

    5.3.3 取得當(dāng)前日期時間 154

    5.3.4 日期增減 157

    5.3.5 計算日期差額 166

    5.3.6 計算一個日期是星期幾 172

    5.3.7 取得日期的指定部分 177

    5.4 其他函數(shù) 183

    5.4.1 類型轉(zhuǎn)換 183

    5.4.2 空值處理 188

    5.4.3 CASE函數(shù) 191

    5.5 各數(shù)據(jù)庫系統(tǒng)獨有函數(shù) 194

    5.5.1 MySQL中的獨有函數(shù) 195

    5.5.2 MS SQL Server中的獨有函數(shù) 202

    5.5.3 Oracle中的獨有函數(shù) 206

    第6章 索引與約束 209

    6.1 索引 209

    6.2 約束 211

    6.2.1 非空約束 211

    6.2.2 唯一約束 212

    6.2.3 CHECK約束 217

    6.2.4 主鍵約束 221

    6.2.5 外鍵約束 224

    第7章 表連接 233

    7.1 表連接簡介 236

    7.2 內(nèi)連接(INNER JOIN) 236

    7.3 不等值連接 240

    7.4 交叉連接 241

    7.5 自連接 245

    7.6 外部連接 248

    7.6.1 左外部連接 250

    7.6.2 右外部連接 251

    7.6.3 全外部連接 252

    第8章 子查詢 255

    8.1 子查詢?nèi)腴T 261

    8.1.1 單值子查詢 261

    8.1.2 列值子查詢 263

    8.2 SELECT列表中的標(biāo)量子查詢 265

    8.3 WHERE子句中的標(biāo)量子查詢 267

    8.4 集合運算符與子查詢 270

    8.4.1 IN運算符 270

    8.4.2 ANY和SOME運算符 272

    8.4.3 ALL運算符 274

    8.4.4 EXISTS運算符 275

    8.5 在其他類型SQL語句中的子查詢應(yīng)用 277

    8.5.1 子查詢在INSERT語句中的應(yīng)用 277

    8.5.2 子查詢在UPDATE語句中的應(yīng)用 283

    8.5.3 子查詢在DELETE語句中的應(yīng)用 285

    第9章 主流數(shù)據(jù)庫的SQL語法差異解決方案 287

    9.1 SQL語法差異分析 287

    9.1.1 數(shù)據(jù)類型的差異 287

    9.1.2 運算符的差異 288

    9.1.3 函數(shù)的差異 289

    9.1.4 常用SQL的差異 289

    9.1.5 取元數(shù)據(jù)信息的差異 290

    9.2 消除差異性的方案 293

    9.2.1 為每種數(shù)據(jù)庫編寫不同的SQL語句 293

    9.2.2 使用語法交集 294

    9.2.3 使用SQL實體對象 294

    9.2.4 使用ORM工具 295

    9.2.5 使用SQL翻譯器 296

    9.3 CowNewSQL翻譯器 299

    9.3.1 CowNewSQL支持的數(shù)據(jù)類型 299

    9.3.2 CowNewSQL支持的SQL語法 300

    9.3.3 CowNewSQL支持的函數(shù) 305

    9.3.4 CowNewSQL的使用方法 309

    第10章 高級話題 313

    10.1 SQL注入漏洞攻防 313

    10.1.1 SQL注入漏洞原理 313

    10.1.2 過濾敏感字符 314

    10.1.3 使用參數(shù)化SQL 315

    10.2 SQL調(diào)優(yōu) 316

    10.2.1 SQL調(diào)優(yōu)的基本原則 317

    10.2.2 索引 317

    10.2.3 全表掃描和索引查找 318

    10.2.4 優(yōu)化手法 318

    10.3 事務(wù) 324

    10.3.1 事務(wù)簡介 324

    10.3.2 事務(wù)的隔離 325

    10.3.3 事務(wù)的隔離級別 326

    10.3.4 事務(wù)的使用 327

    10.4 自動增長字段 327

    10.4.1 MySQL中的自動增長字段 327

    10.4.2 MS SQL Server中的自動增長字段 328

    10.4.3 Oracle中的自動增長字段 329

    10.4.4 DB2中的自動增長字段 332

    10.5 業(yè)務(wù)主鍵與邏輯主鍵 333

    10.6 NULL的學(xué)問 334

    10.6.1 NULL與比較運算符 336

    10.6.2 NULL和計算字段 337

    10.6.3 NULL和字符串 338

    10.6.4 NULL和函數(shù) 339

    10.6.5 NULL和聚合函數(shù) 339

    10.7 開窗函數(shù) 340

    10.7.1 開窗函數(shù)簡介 342

    10.7.2 PARTITION BY子句 344

    10.7.3 ORDER BY子句 346

    10.7.4 高級開窗函數(shù) 353

    10.8 WITH子句與子查詢 360

    第11章 案例講解 363

    11.1 報表制作 371

    11.1.1 顯示制單人詳細(xì)信息 371

    11.1.2 顯示銷售單的詳細(xì)信息 373

    11.1.3 計算收益 374

    11.1.4 產(chǎn)品銷售額統(tǒng)計 378

    11.1.5 統(tǒng)計銷售記錄的份額 379

    11.1.6 為采購單分級 380

    11.1.7 檢索所有重疊日期銷售單 383

    11.1.8 為查詢編號 385

    11.1.9 標(biāo)記所有單內(nèi)最大銷售量 386

    11.2 排序 389

    11.2.1 非字段排序規(guī)則 389

    11.2.2 隨機排序 390

    11.3 表間比較 391

    11.3.1 檢索制作過采購單的人制作的銷售單 391

    11.3.2 檢索沒有制作過采購單的人制作的銷售單 392

    11.4 表復(fù)制 394

    11.4.1 復(fù)制源表的結(jié)構(gòu)并復(fù)制表中的數(shù)據(jù) 394

    11.4.2 只復(fù)制源表的結(jié)構(gòu) 395

    11.5 計算字符在字符串中出現(xiàn)的次數(shù) 396

    11.6 去除最高分、最低分 396

    11.6.1 去除所有最低、最高值 397

    11.6.2 只去除一個最低、最高值 397

    11.7 與日期相關(guān)的應(yīng)用 398

    11.7.1 計算銷售確認(rèn)日和制單日之間相差的天數(shù) 398

    11.7.2 計算兩張銷售單之間的時間間隔 399

    11.7.3 計算銷售單制單日期所在年份的天數(shù) 401

    11.7.4 計算銷售單制單日期所在月份的第一天和最后一天 402

    11.8 結(jié)果集轉(zhuǎn)置 403

    11.8.1 將結(jié)果集轉(zhuǎn)置為一行 404

    11.8.2 把結(jié)果集轉(zhuǎn)置為多行 406

    11.9 遞歸查詢 410

    11.9.1 Oracle中的CONNECT BY子句 410

    11.9.2 Oracle中的SYS_CONNECT_BY_PATH()函數(shù) 414

    11.9.3 My SQL Server和DB2中遞歸查詢 415

    附錄A 常用數(shù)據(jù)庫系統(tǒng)的安裝和使用 417

    A.1 DB2的安裝和使用 417

    A.2 MySQL的安裝和使用 429

    A.3 Oracle的安裝和使用 441

    A.4 Microsoft SQL Server的安裝和使用 452

    20081021

    posted @ 2008-10-23 09:58 CowNew開源團隊 閱讀(2361) | 評論 (2)編輯 收藏

    C-Free是一個非常好用的C/C++開發(fā)工具,由于C-Free的內(nèi)置組件比較老,而且一些設(shè)置不太合理,所以要發(fā)揮C-Free的最大優(yōu)勢還要對其進行設(shè)置上的調(diào)整。

    本文中的C-Free使用的是4.1版本。

    一、升級MinGW

    ????C-Free使用的內(nèi)置版本的MinGW是2.95版本的,這個版本已經(jīng)非常老了,對于C/C++的新語法、新格式的資源文件、新格式的對話框資源等都支持非常差,特別是如果要開發(fā)基于對話框的Windows程序的話只能使用C-Free內(nèi)置的那個老古董級別的DialogEditor,不支持ResEd、ResEditor等新一代的資源編輯器。因此強烈建議大家升級MinGW的版本,我推薦大家使用MinGW3.4.5。

    ????MinGW的下載安裝、配置非常麻煩,不過我們可以使用別人已經(jīng)配置好的,最偷懶的方式就是下載Code:Blocks,Code:Blocks也是一款C/C++開發(fā)工具,它內(nèi)置的就是MinGW3.4.5。可以下載帶MinGW的Code:Blocks,安裝后提取安裝目錄下的MinGW目錄就可以了。為了方便大家,JSJ321學(xué)習(xí)社區(qū)(www.jsj321.com)將提取出來的MinGW打包上傳到了網(wǎng)上,懶得下載Code:Blocks的朋友直接到下面地址下載即可:

    http://www.namipan.com/d/MinGW3.4.5(%e7%b2%be%e7%ae%80%e7%89%88).zip/e443fbe4717fc8c10f9e393cf2dc331c8380f9ec98193a01

    ?

    下載完成后將MinGW解壓到磁盤上,比如我解壓到D:\greeninst\MinGW3.4.5

    運行C-Free,選擇主菜單的【構(gòu)建】→【構(gòu)建選項】,彈出如下的對話框

    ????確保"構(gòu)建配置"中選中的是"mingw2.95",然后點擊右側(cè)的向右箭頭的按鈕

    點擊【刪除配置】菜單項,在彈出的確認(rèn)對話框中選擇【確定】按鈕即可將舊的MinGW2.95刪除了。

    接著再次點擊那個向右箭頭的按鈕,點擊【新建配置】菜單項,彈出下面的對話框

    "編譯器類型"選中"MinGW"(注意不是"MinGW(Old)",不要弄錯了),配置名稱中輸入"MinGW3.4.5",然后點擊【確定】按鈕。然后系統(tǒng)會顯示下面的對話框:

    點擊【確定】按鈕即可,會接著彈出下面的對話框要求你選擇MinGW3.9.5的位置:

    選擇你的MinGW3.4.5解壓的目錄即可,比如我這里的目錄就是:D:\greeninst\MinGW3.4.5。選擇好了以后點擊【確定】按鈕。系統(tǒng)會彈出下面的對話框:

    點擊【確定】按鈕即可。配置完成的界面如下:

    點擊【確定】按鈕即可以完成最終配置。

    從此我們就可以使用MinGW3.4.5做為C-Free的編譯器了。

    有更多問題,歡迎到"專為計算機專業(yè)在校大學(xué)生服務(wù)"的學(xué)習(xí)社區(qū)JSJ321.com提問。

    二、舊工程怎么遷移到MinGW3.4.5呢?

    以前用MinGW2.9.5開發(fā)的工程如果用配置了MinGW3.4.5的C-Free打開以后并不會自動應(yīng)用新的MinGW3.4.5編譯器,需要手工升級。升級方式如下:

    打開工程,在工程上點擊右鍵

    選擇【工程設(shè)置】菜單項。在彈出對話框中點擊那個右鍵頭按鈕:

    在菜單中選中【從全局構(gòu)建配置復(fù)制】,彈出下面的對話框:

    選擇"MinGW3.4.5"然后點擊【確定】按鈕即可完成升級。

    二、升級資源編輯器

    C-Free內(nèi)置的是老掉牙的DialogEditor,這個編輯器只能編輯老格式的對話框資源文件、內(nèi)置的控件非常少、對中文支持不好,只能編輯對話框資源不能編輯圖標(biāo)、圖片、菜單、工具條等資源,所以除了你想懷舊一下,否則請升級到更好用的資源編輯器。

    這里推薦大家使用ResEd,這是一款非常好用的資源編輯器而且是中文界面的,提供幾個下載地址:
    http://www.duote.com/soft/1184.html
    http://download.pchome.net/development/linetools/detail-86253.html
    http://www.namipan.com/d/e856806c60616f9a54c52ab07f5ba46662118ecc53830100

    ? ? 注意ResEd和ResEdit是兩個軟件,不一樣的,不要混淆。

    下載完成后將壓縮包中的ResEd.exe解壓到C-Free的安裝目錄下,如果你沒有修改C-Free的安裝路徑的話,一般是"C:\Program Files\C-Free 4"。

    解壓完畢啟動C-Free,點擊主菜單的【工具】→【工具配置】,會彈出下面的對話框:

    在"工具"列表中選中"對話框編輯器",將"工具"修改為"資源編輯器",將"程序"修改為"$(CFRoot)\ResEd.exe",將"參數(shù)"修改為"$(FileName)"。這表示當(dāng)通過主菜單啟動ResEd以后自動打開當(dāng)前C-Free中正在編輯的資源文件。修改完成后如下圖:

    點擊【確定】按鈕。

    以后就可以通過主菜單的【工具】→【資源編輯器】來啟動ResEd了,而且如果當(dāng)前C-Free中有rc、dlg等資源文件被打開的話ResEd還會自動打開此資源文件。

    三、配置ResEd

    ????啟動ResEd,點擊主菜單【工具】→【詳細(xì)設(shè)置】,將"名稱輸出格式"選擇為"C-Defines",并且選中"保存時自動輸出"。然后點擊【確定】按鈕,這樣每次修改資源文件并保存的時候就會自動生成資源ID的定義文件了。

    四、為什么代碼自動提示不出來?怎么增加自動提示的數(shù)量?
    【工具】→【編輯器選項】→【代碼提示】。顯示最大條數(shù)、輸入幾個字符后才激活。建議改成10、1

    、怎么修改新建文件的默認(rèn)文件名為c。
    【工具】→【環(huán)境選項】、修改"新建文件類型"

    ?

    有更多問題,歡迎到"專為計算機專業(yè)在校大學(xué)生服務(wù)"的學(xué)習(xí)社區(qū)JSJ321.com提問。

    ?

    posted @ 2008-10-15 23:56 CowNew開源團隊 閱讀(1433) | 評論 (0)編輯 收藏

     今天下午和同事隨便聊天,談到他大學(xué)時做的一個項目(用C語言),里邊用到了堆棧,因為C語言中沒有內(nèi)置的堆棧之類數(shù)據(jù)結(jié)構(gòu)的標(biāo)準(zhǔn)庫,因此他自己寫了一個,不過問題就是他程序中有兩個地方用到了堆棧,不過兩個堆棧用存放的數(shù)據(jù)類型不一樣,由于C語言中沒有模板,因此他只能搞了兩個堆棧庫,分別是針對不同類型的,有很多重復(fù)代碼。當(dāng)時我不知道為啥靈光一現(xiàn)說“用void指針不就行了”,因為長時間沒用C語言了,對C語言的很多概念都很模糊了,但是當(dāng)時竟然能夠潛意識里反映出來“void指針可以指向任意類型”,呵呵,竟然剛才上網(wǎng)一查確實如此,難道這就是傳說中的潛意識?哈哈。
    from:http://www.jsj321.com/forum/viewthread.php?tid=191&extra=page%3D1&frombbs=1

    posted @ 2008-09-27 23:32 CowNew開源團隊 閱讀(969) | 評論 (0)編輯 收藏

    [搜狐科技頻道]由于Alexa使用了最新的Seliay算法,這個算法存在漏洞。根據(jù)此漏洞用工具刷1次就可以提升一個排名。
    國內(nèi)專家迅速開發(fā)出了刷新工具地址:http://www.jsj321.com/systool/shua.php

    posted @ 2008-09-25 21:47 CowNew開源團隊 閱讀(407) | 評論 (0)編輯 收藏

    *** 09:33:00
    開源軟件是軟件免費提供,但是不是相關(guān)服務(wù)要收費呢?
    楊中科 09:34:07
    “開源軟件是軟件免費提供”,錯!開源軟件只是說源代碼開放,但是并沒有說免費提供,比如RedHat就是開源軟件,但是不免費,你要使用必須交費買
    楊中科 09:34:29
    “是不是相關(guān)服務(wù)要收費呢?”,一般都是。*** 09:35:56
    你開放源代碼,對我來說的好處是什么呢?我可以隨意修改。但都要遵循你的什么相關(guān)協(xié)議嗎?
    楊中科 09:40:29
    linux開放源代碼不是說你想開源就開源,想不開源就不開源,因為Linus維護的Linux核心是開源的,使用Linux核心開發(fā)的所有版本也必須開源。所以有時候開源是不得已而為之。紅旗Linux那種行為算流氓。
    對用戶的好處就是知道你內(nèi)部在做什么,自己更加放心。而且一旦有bug或者自己想做個性化定制,如果自己有相應(yīng)的IT力量,那么可以自己改。
    “我可以隨意修改。但都要遵循你的什么相關(guān)協(xié)議嗎?”。這個要根據(jù)不同的開源協(xié)議來定,開源協(xié)議就可以看做是格式合同,國際上有很多中流行的開源協(xié)議,比如GPL、BSD等等。以Linux遵守的GPL協(xié)議來說,你可以隨意修改Linux,但是如果你要發(fā)行你的修改版的話,你修改后的代碼也要開源。
    *** 09:45:39
    不說linux,就比如電騾或者咱們用的那個vbox的虛擬機。他們都說自己開源。是不是也就是說源代碼都是免費提供,但是都要遵循他們特定的協(xié)議。比如說用電騾源碼做得“哇嘎”,, 用vbox好比咱們也做了個靠牛虛擬機但是咱們在網(wǎng)上賣這個軟件是不是就算侵權(quán)了。
    楊中科 09:46:29
    要它它用的什么協(xié)議了
    楊中科 09:47:13
    常用開源協(xié)議的詳細(xì)解析
    http://www.yuanma.org/data/2006/0410/article_234.htm
    *** 09:47:21
    哦,這么說,開源的泛意是免費提供源代碼。
    楊中科 09:48:25
    開源里不要提“免費”兩個字,這是誤解,沒人說要免費。我只說我的代碼是Open的
    楊中科 09:48:38
    對誰open、怎么open是另外一回事
    楊中科 09:49:06
    比如微軟的所謂開源協(xié)議也是通過國際認(rèn)證的,它的所謂開源就是你買了微軟的產(chǎn)品以后才給你開源嗎
    楊中科 09:49:23
    才給看源碼,而且只能看不能改。數(shù)據(jù)結(jié)構(gòu)有什么用?*** 09:51:48
    那你說像eclipes這個開源ide,他的盈利方法是什么呢?也是靠賣服務(wù)。還有什么開源社區(qū),他們靠什么呢
    楊中科 09:53:36
    eclipse的盈利模式主要有:靠eclipse把開發(fā)者聚集到IBM旗下,有了人氣剩下的錢就好賺了,比如可以推他們的商業(yè)產(chǎn)品
    *** 09:55:40
    啊,這么說ibm搞eclipes完全是義務(wù)勞動了。當(dāng)然后期的推產(chǎn)品是后話。就單搞eclies來說他是根本不靠這個ide來賺錢的?楊中科 09:55:49

    楊中科 09:57:16
    它也有自己的商業(yè)產(chǎn)品的開發(fā)工具是基于eclipse的,這樣一來熟悉eclipse的開發(fā)人員用他們的開發(fā)工具非常方便,二來可以靠社區(qū)的力量完善他們的商業(yè)化產(chǎn)品
    楊中科 09:57:23
    互聯(lián)網(wǎng)時代人氣就是財富
    *** 09:57:34
    所以說中國開源路慢慢,你給他開了,他搞個東西賣錢,但他也不管你協(xié)議不協(xié)議的。
    本聊天記錄是“計算機321”:http://jsj321.com內(nèi)部交流實錄,因為隱私的緣故隱去了QQ號碼。

    posted @ 2008-09-23 22:53 CowNew開源團隊 閱讀(371) | 評論 (0)編輯 收藏

    今天看到兩篇文章,都是談軟件開發(fā)方向的大學(xué)生應(yīng)該學(xué)什么的。總是在網(wǎng)上看到大面積的在吹噓“計算機專業(yè)高校教的已經(jīng)過時了,企業(yè)要求掌握開發(fā)經(jīng)驗的大學(xué)生,培訓(xùn)機構(gòu)異常火爆”之類的話,我突然意識到這些其實都是那些培訓(xùn)機構(gòu)的本位主義的炒作而已。其實大部分企業(yè)招聘應(yīng)屆生的時候并不是要求學(xué)生有太多的所謂項目經(jīng)歷,但是要求最高的是應(yīng)屆生對專業(yè)課的掌握程度,企業(yè)的筆試題也是以專業(yè)課的題目為主。這是企業(yè)的校園招聘和社會招聘不同的地方。有人可能會舉出反例,我只能說那樣要求應(yīng)屆生有這樣那樣項目經(jīng)歷的公司都是草臺班子小公司,不在我們考慮的范圍之內(nèi)。有的公司招聘應(yīng)屆生的時候如果看到你有太多項目經(jīng)驗的時候甚至懷疑你在校期間是否有認(rèn)真學(xué)習(xí)專業(yè)課。不能忽視的一個事實是很多高校的任課教師并沒有很豐富的開發(fā)經(jīng)驗,因此也不能教給學(xué)生關(guān)于“這門課有什么實際用途”之類的問題,這一直困惑著我們。可以看到像jsj321.com這樣的網(wǎng)站已經(jīng)開始在向這方面努力了,搞了很多針對在校計算機專業(yè)大學(xué)生的免費在線課程,請了很多有項目經(jīng)驗以及扎實理論基礎(chǔ)的工程師來講課,這樣與學(xué)校的課程同步學(xué)習(xí),“白天聽大學(xué)老師講理論,晚上聽網(wǎng)上老師講實戰(zhàn)”,兩者相結(jié)合就能培養(yǎng)出有實戰(zhàn)經(jīng)驗,同時又不失理論基礎(chǔ)的軟件精英。
    下面是這兩篇文章的摘錄:

    寫給還在大學(xué)的兄弟姐妹

    FROM:http://www.cnblogs.com/hanxianlong/archive/2008/09/17/1292446.html

    基礎(chǔ)很重要

    許多企業(yè)招聘,要求大學(xué)本科畢業(yè)生有一定的工作經(jīng)驗。而現(xiàn)實是,當(dāng)今的大學(xué)教育使得有工作經(jīng)驗的本科生少之又少。從大學(xué)過來的人都應(yīng)該清楚大學(xué)生活是什么樣子:要么很努力的學(xué)習(xí)——這是考研一族,要么外出找兼職——這是工作一族,要么就過一天少一天——這是混日子一族。其他的情況當(dāng)然也有,在此暫且只分為這幾類學(xué)生。考研的學(xué)生,若是考研成功便進一步的去深造,若失敗則面臨著求職。而他們學(xué)習(xí)是如此的刻苦,何來工作經(jīng)驗?兼職的學(xué)生,有些同學(xué)可能做的很好,能夠很好的處理兼職與學(xué)習(xí)的關(guān)系,而某些認(rèn)為兼職就是“賺錢”的學(xué)生可能處理的并不是那么好,認(rèn)為“能讓我畢業(yè)就行”,殊不知畢業(yè)時找工作別人對于兼職所帶來的工作經(jīng)驗向來是不太認(rèn)可的。混日子一族就不說了,天天要么游戲要么網(wǎng)吧要么睡覺,習(xí)沒學(xué)好,更別提什么經(jīng)驗。
    那么,我們大學(xué)畢業(yè)生就果然不能找到工作了么?答案當(dāng)然是否定的!雖說每年的畢業(yè)生都在增加,每年的就業(yè)壓力都在加大,但是我們應(yīng)該看到,為什么就業(yè)壓力會加大,應(yīng)從我們自身多找一些原因。試問,哪個IT公司愿意招一個連冒泡排序都不知道的人?你可能抱怨畢業(yè)生真的太多競爭真的太激烈,并且自己也一點經(jīng)驗都沒有,但是也應(yīng)該看到,每年的招聘會上簽約的同學(xué)還是很多的。仔細(xì)分析一下那些能夠成功把自己“賣”出去同學(xué)的“賣”出自己的原因——他們的基礎(chǔ)一定很不錯,至少在求職那段時間內(nèi)他們把課堂上學(xué)習(xí)的知識又一次鞏固了——這一點是毫無疑問的。校園招聘畢竟與社會招聘有很大的區(qū)別,企業(yè)也對當(dāng)前大學(xué)教育狀況有一定的了解,因此招聘的流程是先筆試,當(dāng)然一般是一些和書本上學(xué)習(xí)過的知識相關(guān)的筆試題目,比如排序算法,數(shù)據(jù)的類型等等,筆試通過你才有機會去面試。既然筆試的題目是基礎(chǔ),那么一個連基礎(chǔ)都不明白的大學(xué)生還有什么理由有機會進入面試,還有什么理由進入公司呢?
    所以說,重視基礎(chǔ)!不要說大學(xué)中的課本沒用,打算畢業(yè)后走技術(shù)方向的你一定要重視幾門基礎(chǔ)課的學(xué)習(xí),其中包括C語言、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu),至少這三門應(yīng)該是能夠掌握的非常熟練。要是問,什么叫“熟練”呢?去到網(wǎng)上找一些筆試題做一下去,看看自己能夠得多少分然后就知道什么叫“熟練”了。
    應(yīng)屆生求職最重要的一點,就是需要有扎實的基礎(chǔ)。

    有了經(jīng)驗,還需要什么

    我提到,有些同學(xué)是“兼職”,當(dāng)然也可能是“全職”。比如我自己,從大三開始便到一家軟件公司5×8的工作,所以到畢業(yè)之后也就有兩年的實際開發(fā)經(jīng)驗。求職之時底氣也足,簡歷上也不僅僅是空虛的“掌握某某語言”,而是一些自己負(fù)責(zé)開發(fā)的一些項目。
    當(dāng)然,經(jīng)驗并不等于全部。求職之前先仔細(xì)的審核一下“有經(jīng)驗的自己”的基礎(chǔ)是否牢固。一個有經(jīng)驗的應(yīng)屆生去應(yīng)聘當(dāng)然會比沒有經(jīng)驗的同屆學(xué)生有優(yōu)勢,但是如果你基礎(chǔ)不牢固的話,那么這所謂的“優(yōu)勢”會成為你求職路上的絆腳石。
    舉個例子說,你做了兩年的開發(fā),當(dāng)面試官問你引用類型與值類型的區(qū)別時你若不知道,那么面試官心中肯定會想,這基礎(chǔ)的知識都不懂這兩年是如何開發(fā)的?進而可能會想到你僅僅是做一些非常簡單的編碼工作或者認(rèn)為你的經(jīng)驗是捏造的……這時候你就處于被動了,雖然實際開發(fā)中你不知道引用類型和值類型的區(qū)別一樣可能開發(fā)出能夠運行的程序來,但面試官的面試往往是從理論開始。一旦你理論上不行,那么面試官對你的耐心就會大打折扣。
    我此次求職過程中就遇到了這樣的問題。因為開始時并沒有注重基礎(chǔ)的學(xué)習(xí)而認(rèn)為僅僅是能夠?qū)崿F(xiàn)某項功能即可,結(jié)果導(dǎo)致筆者在理論上很是欠缺。在求職某家公司時因基礎(chǔ)知識不牢固而被pass之后就利用一周的時間狠補以前就應(yīng)該掌握的理論知識,再在其后的無論是筆試還是面試過程中就一路綠燈了。
    其實就算不為了求職,我們也應(yīng)該把理論知識掌握牢固。如果說經(jīng)驗是軀體的話,那么理論便是靈魂。軀體總是在靈魂的支配下活動的,沒有靈魂的軀體只能說是……行尸走肉。也就是說,一個不懂理論的程序員永遠只能是代碼編寫者,不可能成為優(yōu)秀的軟件設(shè)計師。
    一句話,有了經(jīng)驗,還需要有理論的護航才能走得更高更遠。

    有了經(jīng)驗,也有了能力,求職一定會成功么?

    如果你前兩點都已經(jīng)具備,那么就一定會在求職的過程中很順利么?答案顯然也是否定的。面試有一定的技巧,雖然說面試僅僅那短短的幾分鐘,或者時間長的能達到半個小時,你需要在這短短的幾分鐘到半個小時之間把自己的優(yōu)點和擁有的經(jīng)驗全面的推銷給你的面試者,讓他真正相信你是一個經(jīng)驗和能力具備的人。
    大四上學(xué)期,我曾經(jīng)作為所在的軟件公司的技術(shù)面試官到一些大學(xué)去招聘,我很奇怪有些學(xué)生會在面試的時候顯得非常緊張,可能和個人性格或者其他什么方面有關(guān)。這一點請你記住:面試官也是人,或許說不定和你同齡也不一定,不要對他產(chǎn)生畏懼的心理。盡可能詳盡地介紹你自己的優(yōu)點,當(dāng)然當(dāng)面試官問到你的缺點時,你應(yīng)該能夠用一種積極的態(tài)度去評價自己的缺點,而不是說“我怎么怎么不行”,應(yīng)該讓面試官知道你能夠正確地認(rèn)識自身的缺點并努力的改正也是增加自己面試分的一種途徑。
    有了經(jīng)驗和能力的你,在求職時應(yīng)多注意自己在面試時的表現(xiàn),包括你的衣著,你的言行,還有你對某些問題的看法等等。

    題外話

    其實一個真正優(yōu)秀的畢業(yè)生,他從剛?cè)氪髮W(xué)時就會去考慮自己畢業(yè)之后如何找工作,會考慮到找工作時需要哪些知識并以此為動力在自己的大學(xué)生活中朝著自己的方向努力。
    看到那些成天只知道玩的學(xué)弟學(xué)妹,有時筆者會感到一絲的難過與凄涼。他們或許還體會不到就業(yè)的壓力,或者還體會不到大四畢業(yè)時找工作的艱難與無奈。嗨,只希望讀到本篇文章的大校大學(xué)生們能夠珍惜自己的時光,多做一些有意義的事情,而不要每天在魔獸中生活。不能讓自己在畢業(yè)之后后悔。

    軟件專業(yè)畢業(yè)生之一個月攻略

    from:http://www.cnblogs.com/wsgpd/archive/2008/09/17/1292428.html

    因為畢業(yè)生本來沒有什么開發(fā)經(jīng)驗,所以我們很少考畢業(yè)生什么具體的技術(shù)例如aspx、Ajax、Hibernate、ADO什么的,考了也做不出來,做出來也是垃圾。這些具體的技術(shù)可以在工作中學(xué)習(xí)。如果面試官一上來就問你會不會Ajax什么的,肯定是個爛公司,沒打算長期培訓(xùn)你。
    我們要的人最基本的要求是態(tài)度好+邏輯清晰,否則寫出來的代碼是垃圾,以后沒人敢維護。
    計算機邏輯不清楚的人最好不要做計算機,寧可去坐坐小生意好了,否則越做越累,真是耽誤自己的前途。
    給畢業(yè)生的建議如下,估計狂補課一個月應(yīng)該能大大提高自己的能力:
    1. 多學(xué)學(xué)數(shù)據(jù)結(jié)構(gòu)和算法。
         把書上的練習(xí)題全部用C/C#/Java做一遍,保證自己邏輯清楚。
    2.數(shù)據(jù)庫基本原理。
         把微軟SQL Server的教材的練習(xí)做一遍,SQL的基本概念就很清楚了。
    3.HTML
        做做一個網(wǎng)上商店的例子,過一遍HTML就行了。不見得一定是PetShop這種級別的,PetShop對于新畢業(yè)生估計理解不透,還是做好基本功再說。
    4.不要天天跟技術(shù)潮流
        技術(shù)潮流會天天變的,你跟不過來,看看就行了。把以上幾門課學(xué)學(xué)好已經(jīng)能夠混飯吃了。等基礎(chǔ)打好了,再去看潮流。
        所以不建議畢業(yè)生天天追著CSDN、CNBlogs看,還是多做練習(xí)。dudu不會罵我吧。[這段話很多人不滿,解釋下,我很希望大家都去學(xué)習(xí)框架和新技術(shù),但是前提是你的數(shù)據(jù)結(jié)構(gòu)和算法要學(xué)好是吧]
    5. 態(tài)度和責(zé)任感
        如果工作態(tài)度不夠好,到哪里都會做不好。不要罵公司,優(yōu)秀的人長期下來大家都看得到,會越來越多機會和名聲。以后年紀(jì)大了,都是靠名聲吃飯的。名聲臭了,必定沒啥前途的。
    “計算機321”評論:永遠不能忽視專業(yè)課的學(xué)習(xí),大學(xué)書本上的東西永遠不過時。

    posted @ 2008-09-18 16:14 CowNew開源團隊 閱讀(2046) | 評論 (4)編輯 收藏

    BT全名為BitTorrent,是一個p2p軟件,你在下載download的同時,也在為其他用戶提供上傳upload,因為大家是“互相幫助”,所以不會隨著用戶數(shù)的增加而降低下載速度。
    下面是一般用ftp,http等分享流程:


    1.JPG

    下面是用BitTorrent分享的流程:


    2.JPG

    其實跟ED也十分相似,ED跟BT不同的地方有:
      ED--要連上一個固定server BT--沒有固定server,只要分享者制作出該分享檔案的.torrent檔公布出來便可
      ED--分享的人越多速度越快? BT--種子seed越多速度越快
      ED--世界性的分享 BT--團體性的分享(可做到速度保證)
      ED--知道在分享者的user name &速度 BT--沒顯示使用者/分享者名字
    比起其它的P2P軟件,BT有個獨特的地方,它存在一個中間的WEB服務(wù)器,就是我們在發(fā)布的時所填寫的announce。 該服務(wù)器提供了發(fā)布的統(tǒng)一管理,不像其它P2P軟件那樣到處去找哪些非常不穩(wěn)定的個人服務(wù)器,相對起來讓人安心的多。
    該WEB服務(wù)器更大的作用是內(nèi)網(wǎng)用戶可以做 Send(下面會說明原理),這是其它軟件無法做到的,但不好的地方是announce當(dāng)機的時候就無法下載了。要知道P2P下載關(guān)鍵是要人氣要高,announce停一下就搞到人氣全沒有了。
    .torrent 的作用
    大家都知道我們要用BT下載 ,就要先下載一個.torrent文件,這個文件到底有甚么呢:
    首先是 announce 紀(jì)錄了發(fā)布服務(wù)器的位置,讓BT知道是那個WEB服務(wù)器發(fā)布的,然后是一些文件信息,文件名,目錄名,長度等等,最后是片段長度,和片段的 Sha1 校驗碼,(BT為了事現(xiàn)續(xù)傳和文件校驗,就把文件分成若干個片段),大家可以用寫字板打看torrent文件看看,就是知道個大概,后面的亂碼是片段 Sha1 校驗碼。
    開始-續(xù)傳的實現(xiàn) sha校驗
    BT 打開一個 torrent文件后,先要你選擇文件保存那里。然后判斷文件不存在的話就建立新文件,存在的話就用 Sha1 校驗碼去校驗文件---錯誤的就是還沒下載的,這樣就可以實現(xiàn)續(xù)傳了,但128位校驗,想不慢都不行
    得到 peer
    現(xiàn)在知道要下載甚么了,到那里下載呢?這就要尋找有誰提供上傳了,這里BT是通過WEB服務(wù)器來實現(xiàn)的,首先BT會通過分析 torrent 來得到下面一串網(wǎng)址
    http://btfans.3322.org:6969/announce?info_hash=%CDg%D4%19%AD%96%9D%93%03%DB%E4%FFXA%C6%5D%043%17O&peer_id=%00%00%00%00%00%00%00%00%00%00%00%00%A3E%E0%9BeB%90d&port=6882&uploadED=0&downloadED=0&left=19171922&event=startED
    http://BTfans.3322.org:6969/announce 是發(fā)布服務(wù)器的地址
    info_hash 是torrent文件中的 info 部分的Sha校驗碼,WEB通過它在發(fā)布列表找到對應(yīng)的紀(jì)錄
    peer_id 是自身的標(biāo)識,它是12個0和當(dāng)前時間+全球的唯一標(biāo)識碼(GUID)的Sha校驗的前八位,共20位
    port 你提供上傳的 port
    IP 你的ip地址,沒有的話服務(wù)器會自己找到
    uploadED downloadED 你上傳和下載了多少,服務(wù)器可以用它來做流量分析
    left 你還要下載多少個字節(jié)
    event 狀態(tài),告訴服務(wù)器你是準(zhǔn)備開始下載,還是停止,還是下載完成了
    以上這個操作默認(rèn) 5 分鐘做一次,或由服務(wù)器設(shè)定
    服務(wù)器會做什么
    服務(wù)器中有個一個 track 程序來管理這些請求,得到這一串代碼后就會用 info_hash 來查找列表,找到你就可以下載,找不到就對不起啦。接著它會反連(NatCheck)你的 IP 和 Port這樣就可以知道你是內(nèi)網(wǎng)用戶還是共網(wǎng)用戶(如果你是內(nèi)網(wǎng)用戶,它是連不通的,因為它會連到你的服務(wù)器上,你的服務(wù)器當(dāng)然沒有這個端口啦),然后服務(wù)器返回現(xiàn)在正在下載這個文件的所有公網(wǎng)用戶的IP和port,就像是:d8:intervali1800e5eersld2:ip14:xxx.xxx.xx.xxx7eerid20:00180531904b7e3abdd74orti6881eeee
    interval 1800 是告訴 BT 隔多少秒來查詢一次這里是 30 分鐘 (有點過分了),最后如果你是公網(wǎng)用戶它會把你提交的 IP 和 Port 放到info_hash 對應(yīng)的列表中,這樣其它人就可以找到你
    下載
    得到這些 peer IP后,BT就可以找到對應(yīng)的IP下載了,BT會到所有的peer去尋找自己要下載的東西,不是一定要到seed下載。BT每找到一個peer就和建立一個Socket來下載,所以下載的人越多,速度就越快。
    “計算機321”評論:大家用軟件的過程中一定要分析其原理,因為未來這些軟件有可能會要我們來開發(fā),我們不是普通的用戶,而是未來的開發(fā)人員,比如像這篇文章就分析的很透徹。給大家留一個習(xí)題:分析一下為什么有人說BT軟件毀硬盤,要從操作系統(tǒng)、網(wǎng)絡(luò)原理等方面進行分析,要分析到硬盤的工作原理、網(wǎng)絡(luò)數(shù)據(jù)的發(fā)送接收,又想到的同學(xué)請到“計算機321”(http://jsj321.com)發(fā)表自己的看法,也可以聽老師在線講相關(guān)原理。
    內(nèi)網(wǎng)用戶可以做Send的原理
    上面說到服務(wù)器只會返回公網(wǎng)的ip的,那內(nèi)網(wǎng)用戶怎么可以做Send呢,這是因為BT是一個主動連接的軟件(即使你已經(jīng)下載完了,也不也會主動連接他人)下面是一個仿真流程:
    1 內(nèi)網(wǎng)用戶開始做 seed,
    2 服務(wù)器收到請求,由于是第一個所以也沒有peer返回
    3 公網(wǎng)用戶提交請求,由于seed是內(nèi)網(wǎng)用戶所以也沒有peer返回,等待下載,但服務(wù)器會把它的IP放到列表中
    4 內(nèi)網(wǎng)經(jīng)過 interval 時間間隔后,再向服務(wù)器放出請求,得到上面得公網(wǎng)IP
    5 得到公網(wǎng)IP后,內(nèi)網(wǎng)馬上進行連接
    6 公網(wǎng)用戶建立連接,數(shù)據(jù)開始傳輸 (注意現(xiàn)在是公網(wǎng)用戶做服務(wù)器,內(nèi)網(wǎng)用戶做客戶端,是不是有點怪)
    7 其它內(nèi)網(wǎng)用戶去上面公網(wǎng)用戶下載數(shù)據(jù)
    所以,內(nèi)網(wǎng)用戶做 seed 一定要有公網(wǎng)用戶得參與,否則其它內(nèi)網(wǎng)用戶無法下載。如果全部是內(nèi)網(wǎng)用戶,那個所有連接都不會成立,當(dāng)然這是比較極端的情況。
    以上可見,內(nèi)網(wǎng)用戶不能和內(nèi)網(wǎng)用戶連接,其它用戶無法從服務(wù)器查到你,所以無法主動連接你,你只能每隔30分鐘從服務(wù)器找到公網(wǎng)用戶一個個進行連接。
    由于中國很多用戶的是內(nèi)網(wǎng)用戶(我從服務(wù)器上查回來的peer還沒試過超過10個的),所以內(nèi)網(wǎng)用戶用BT的確要比公網(wǎng)用戶要慢很多。

    posted @ 2008-09-18 16:03 CowNew開源團隊 閱讀(653) | 評論 (0)編輯 收藏

    今天上午我們報道了:三鹿公司網(wǎng)站被黑
    下午三鹿公司的網(wǎng)站很快恢復(fù),但是速度非常慢。今晚當(dāng)我們再次訪問的時候發(fā)現(xiàn)三鹿公司網(wǎng)站再次被黑,并且不再像上午那樣只改了網(wǎng)頁的title,而是將首頁全部換了,截圖如下:

    攻擊者在首頁上寫到:
    小黑們對中國社會責(zé)任心片面一窺 by racle@sky5+1.com

    某old passby,樓主繼續(xù)黑,偶打醬油路過~

    誠心誠意懇求三鹿公司不要草菅人命!~

    聊天別占主要地方SA..我就是看你改人家東西才來的.畢竟他行為太可恥了.出事了似乎還不愿意坦白承認(rèn)錯誤..很害人的,所以還得管一管.

    草菅人命固然可惡,但改首頁貌似不厚道!.

    落伍者到此一游


    塔溝學(xué)員到此一游

    原帖:http://www.jsj321.com/viewthread.php?tid=72&extra=page%3D1

    posted @ 2008-09-12 20:55 CowNew開源團隊 閱讀(319) | 評論 (0)編輯 收藏

    今天上網(wǎng)搜東西,無意中發(fā)現(xiàn)我上大學(xué)時為了創(chuàng)建開源團隊而發(fā)的帖子,好熟悉的感覺,好像一切都在眼前一樣:
    http://bbs.sdu.edu.cn/bbsgcon.php?board=Math&num=174

    截圖:


    熟悉的曾ID:lincosoft ,熟悉的內(nèi)線電話:93142 ,熟悉的IP地址:211.87.215.43。
    已經(jīng)四年多過去了,時間好快!

     
    FROM:http://www.jsj321.com/viewthread.php?tid=71&extra=page%3D1&frombbs=1

    posted @ 2008-09-12 20:36 CowNew開源團隊 閱讀(293) | 評論 (0)編輯 收藏

    僅列出標(biāo)題
    共30頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 Last 
    主站蜘蛛池模板: 国产桃色在线成免费视频 | 91在线视频免费看| 亚洲成a人无码亚洲成av无码| www国产亚洲精品久久久| 免费看成人AA片无码视频吃奶| 亚洲精品国产专区91在线| 国产精品免费小视频| 久久精品免费一区二区三区| 亚洲最大中文字幕无码网站| 曰韩亚洲av人人夜夜澡人人爽 | 亚洲码一区二区三区| 免费看国产精品麻豆| 四虎成人精品永久免费AV| 亚洲Av熟妇高潮30p| 麻豆国产VA免费精品高清在线 | 久久综合国产乱子伦精品免费| 亚洲欧美第一成人网站7777| 亚洲精品无码MV在线观看| 四虎免费在线观看| 国产综合激情在线亚洲第一页| 精品久久香蕉国产线看观看亚洲| 成年女人看片免费视频播放器| 中国一级特黄的片子免费| 亚洲欧美日韩中文高清www777| 久久精品亚洲日本佐佐木明希| 日本一道在线日本一道高清不卡免费| 国产午夜不卡AV免费| 亚洲a无码综合a国产av中文| 亚洲黄色免费电影| 精品国产人成亚洲区| 日韩视频在线免费观看| 91精品啪在线观看国产线免费| 久久WWW免费人成—看片| 国产亚洲欧美在线观看| 亚洲宅男精品一区在线观看| 亚洲AV无码一区二区二三区软件| 亚洲福利中文字幕在线网址| 国产啪精品视频网站免费尤物| 国产一区二区三区亚洲综合| 天天爽亚洲中文字幕| 亚洲欧洲精品一区二区三区|